2012-07-11 62 views
1

我setIntervel()有一個函數,我想停止這個函數的執行explicitly.How我能做到這一點???功能是..如何停止執行JavaScript間隔函數?

function autoLoad(chatboxtitle, msgId) { 
    setInterval(function() { 
     if (msgId != '') { 
      $.ajax({ 
       type: "POST", 
       url: "../WebService1.asmx/GetMessagesDetail", 
       data: '{ "messageID": "' + msgId + '" }', 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       async: true, 
       cache: false, 
       success: function(msg) { 
        $("#chatbox_" + chatboxtitle + ".chatboxcontent").empty(); 
        $("#chatbox_" + chatboxtitle + ".chatboxcontent").append(msg.d); 
        $contentLoadTriggered = false; 
       }, 
       error: function(x, e) { 
        alert("error"); 
       } 
      }); 
     } 
    }, 8000); 
} 
+3

將'setInterval()'的返回值存儲到變量中,並調用'clearInterval()'。 – 2012-07-11 13:49:21

+1

除了Michael所說的,你是否考慮閱讀一些['setInterval()'文檔](https://developer.mozilla.org/en/DOM/window.setInterval)? – nnnnnn 2012-07-11 13:51:34

回答

10

如果你的意思是退出功能但不能停止時間間隔(所以函數會再次觸發),您只需要從函數return

如果您的意思是停止間隔,即停止再次觸發的功能,則需要爲變量中的間隔分配一個參考,然後在/根據需要時清除它。

var intie = setInterval(function() { alert('hello'); }, 5000); 
clearInterval(intie);