2012-03-16 46 views
1

我有下面的代碼,其薄型化爲了示例的目的。當我點擊我的停止按鈕bExit標誌設置爲1。在清詞以2秒爲間隔重複控制檯。如何清除超時,這樣的話結算不會重演?cleartimeout在grep的?

//stop playback 
$('.stop').live('click', function() { 
    bExit = 1 
    console.log("stopping..."); 
    clearTimeout(timer0); 
}); 

var timer0; 
var obj = $.grep(thedata, function (e, index) { 
    timer0 = setTimeout(function() { 
     if (bExit == 1) { 
      console.log("clearing..."); 

      //$(".nodeCount,.statInfo,.theborder").hide(); 
      clearTimeout(timer0); 

      return 
     } 
    }, 2000 * index); 
}); 

回答

0

嘗試使用window.setTimeoutwindow.clearTimeoutMDN documentation指出。

+0

沒有什麼區別 – Rob 2012-03-16 20:11:53

+0

難道是因爲你使用的是單變量'timer0'來存儲所有的計時器?如果你說'var timer0 = setTimeout(function(){'? – 2012-03-16 20:19:45

+0

試過,它只是grep/loop的一個定時器。 – Rob 2012-03-16 20:22:47