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

How to clear repeatedly set setInterval function in JQuery

本文关键字:设置 setInterval 函数 清除 JQuery      更新时间:2023-09-26

我正在使用下面的代码根据条件递归调用函数。但是一旦设置了 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){
        }});
    }

试试

setTimeout(callback function, timeout)

这将只运行一次,如果需要运行这个计时器,请再次调用它。

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

这实际上应该是:

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

调用 setInterval 时,将获得对实际设置间隔的引用。这是你需要传递给clearInterval以停止它的引用,而不是由setInterval执行的回调。