如何停止setInterval();?

时间:2014-08-11 12:29:14

标签: javascript

我喜欢......

<div id="div"></div>
<script src="jquery.js"></script>
<script src="updater.js"></script>

更新程序我想从我的.php文件中获取数据,所以可能是......

setInterval(function() {
    $.ajax({
        type: "GET",
        url: "test.php",
        success: function(html) {
             // html is a string of all output of the server script.
            $("#div").html(html);
       }
    });
}, 5000);

然后,显然会产生test.php的页面。

但是,我想停止setInterval();当有人点击评论按钮(textarea)时。我知道,这里有一些;但他们没有工作?

3 个答案:

答案 0 :(得分:5)

Window.clearInterval,它接受​​intervalID是您要取消的重复操作的标识符。此ID从setInterval().

返回

实施例

var interVal = setInterval(function() {
    $.ajax({
        type: "GET",
        url: "test.php",
        success: function(html) {
             // html is a string of all output of the server script.
            $("#div").html(html);
       }
    });
}, 5000);

clearInterval(interVal); //Call the method when you want to clear it.

答案 1 :(得分:2)

您可以使用clearInterval。它需要间隔和时间的Id。清除它。

setInterval放入变量中。

var interval = setInterval(function(){...},time);

点击按钮后,只需执行

clearInterval(interval);

DEMO

答案 2 :(得分:2)

setInterval函数将返回一个标识该间隔的整数。保存该整数以供以后使用,当您想要清除时间间隔时,将其作为参数传递给clearInterval

E.g:

var myInterval = setInterval(function() {
    $.ajax({
        type: "GET",
        url: "test.php",
        success: function(html) {
             // html is a string of all output of the server script.
            $("#div").html(html);
       }
    });
}, 5000);

然后当你想要取消它时:

clearInterval(myInterval);

参考: http://www.w3schools.com/jsref/met_win_clearinterval.asp