使用clearInterval()停止在setInterval()内声明的函数

时间:2015-10-03 04:17:48

标签: jquery

如何停止在setInterval()内声明的函数,如

var start = function(){
    setInterval(function(){//DO SOMETHING},3000)
};

var stop = function() {
    clearInterval(start);
};

$('button.start').click(function(){
    start();
});

$('button.stop').click(function(){
    stop();
});

但是我仍然无法在这里停止setInterval函数。需要一些帮助。感谢

2 个答案:

答案 0 :(得分:2)

声明变量interval

setInterval将创建一个id。

然后将setInterval id分配到inertval变量。

如果想要停止setInterval,请将inertval传递到clearInterval

试试这个

var interval;
var start = function(){
    interval=setInterval(function(){
       //DO SOMETHING
    },3000)
};

var stop = function() {
    clearInterval(interval);
};

答案 1 :(得分:0)

你的方法很接近,但并不完全正确。 setInterval会返回intervalID,然后可以传递给clearInterval

这样的事情会起作用:

var start = function(){
    window.startIntervalID = setInterval(function(){//DO SOMETHING},3000)
};

var stop = function() {
    clearInterval(window.startIntervalID);
};

请参阅setIntervalclearInterval的MDN文档。