簡體   English   中英

如何在JQuery中重復清除setInterval函數

[英]How to clear repeatedly set setInterval function in JQuery

我使用下面的代碼根據條件遞歸調用函數。 但是一旦設置了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){

        }});
    }

嘗試

setTimeout(callback function, timeout)

這只會運行一次,如果你需要運行這個單一計時器,那么再次調用它。

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

這應該是:

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

當您調用setInterval時,您將獲得一個返回實際設置間隔的引用。 這是您需要傳遞給clearInterval以停止它的引用,而不是由setInterval執行的回調。

在2019年,你可以使用我的jQuery / Zepto插件設置你想要的每個狀態https://github.com/xpectmore/jQuery-Interval

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM