如何通过使用在其他函数中调用的clearInterval来停止从函数调用的setInterval

时间:2016-05-03 18:14:34

标签: jquery

大家好我如何通过使用其他函数中调用的setInterval来阻止函数调用clearInterval

在函数中使用setInterval是必要的,因为我使用相同的函数通过单击x来关闭弹出窗口,我想通过关闭弹出窗口来停止计时器。

JS:

function onlinechat(id) {
        $.ajax({
            ....
            success: function(data){
                $(".myclass").append(data);
                var stopChat = window.setInterval(function() {
                    loadmore(id);
                }, 2500);
            }
        });     
    return false;
}

function loadmore(id){
    .....
}

function close_online_chat(){
    $('.lobibox-window').hide();
    clearInterval(stopChat);
}

HTML:

<div class="lobibox-window">
    <div class="lobibox-header">
        <span class="btn-close" onclick="close_online_chat();return false;">×</span>
    </div>
    <div class="lobibox-body" style="height: 510px;">
        <div class="myclass"></div>
    </div>
</div>

1 个答案:

答案 0 :(得分:0)

首先需要将变量定义为全局变量。

var stopChat; //define as global variable
function onlinechat(id) {
        $.ajax({
            ....
            success: function(data){
                $(".myclass").append(data);
                //don't use var here
                stopChat = window.setInterval(function() {
                    loadmore(id);
                }, 2500);
            }
        });     
    return false;
}

function loadmore(id){
    .....
}

function close_online_chat(){
    $('.lobibox-window').hide();
    clearInterval(stopChat);
}