clearInterval()可以在setInterval()中调用吗?

bigloop=setInterval(function () { var checked = $('#status_table tr [id^="monitor_"]:checked'); if (checked.index()===-1 ||checked.length===0 || ){ bigloop=clearInterval(bigloop); $('#monitor').button('enable'); }else{ (function loop(i) { //monitor element at index i monitoring($(checked[i]).parents('tr')); //delay of 3 seconds setTimeout(function () { //when incremented i is less than the number of rows, call loop for next index if (++i < checked.length) loop(i); }, 3000); }(0)); //start with 0 } }, index*3000); //loop period 

我有上面的代码,有时它正在工作,有时不是。 我想知道是否clearInterval实际上清除计时器? 因为这个monitorbutton只有在monitoringfunction时才被禁用。 当单击名为.outputRemove的元素时,我有另一个clearInterval 。 请参阅下面的代码:

 //remove row entry in the table $('#status_table').on('click', '.outputRemove', function () { deleted= true; bigloop= window.clearInterval(bigloop); var thistr=$(this).closest('tr'); thistr.remove(); $('#monitor').button('enable'); $('#status_table tbody tr').find('td:first').text(function(index){ return ++index; }); }); 

但它被禁用了一段时间,然后再次被禁用。 请问clearIntervalsetInterval函数中取出程序吗?

是的你可以。 你甚至可以testing它:

 var i = 0; var timer = setInterval(function() { console.log(++i); if (i === 5) clearInterval(timer); console.log('post-interval'); //this will still run after clearing }, 200);