如何在JQuery中重复清除setInterval函数

时间:2013-11-15 11:57:36

标签: javascript jquery setinterval

我使用下面的代码根据条件递归调用函数。但是一旦设置了setInterval,就不清楚了,并且一次又一次地设置了setInterval。 如何清除重复设置的setInterval函数?

function testFunction(ttlcount){

        jQuery.ajax({url:URL,
           type: "POST",
           data: { 'action_sub':'action'},
           success:function(res){

                            if(res < 0){ 
                                 if(interval != 'undefined'){
                                   clearInterval(setInterval); //clearinterval
                                 }
                                interval = setInterval(function(){testFunction(ttlcount)},1000); 

                              } else {
                                 clearInterval(interval);//clearinterval
                 //Do something ...   
                             }


        },error:function(e){

        }});
    }

3 个答案:

答案 0 :(得分:2)

尝试

setTimeout(callback function, timeout)

这只会运行一次,如果你需要运行这个单一计时器,那么再次调用它。

答案 1 :(得分:0)

if(interval != 'undefined'){
  clearInterval(testFunction); //clearinterval
}

这应该是:

if(interval !== undefined){
  clearInterval(interval); //clearinterval
}

调用setInterval时,会得到一个返回实际设置间隔的引用。这是你需要传递给clearInterval来停止它的引用,而不是setInterval要执行的回调。

答案 2 :(得分:0)

在2019年,您可以使用我的jQuery / Zepto插件设置所需的每个状态 https://github.com/xpectmore/jQuery-Interval

相关问题