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
Mam powyższy kod i czasami działa, czasami nie. Zastanawiam się, czy clearInterval faktycznie czyści licznik czasu ?? ponieważ istnieje ten monitor
przycisk, który będzie nieaktywny tylko wtedy, gdy jest monitoring
aktywny. Mam inny, clearInterval
gdy .outputRemove
kliknięto wywoływany element . Zobacz poniższy kod:
//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;
});
});
Ale był włączony przez chwilę, zanim został ponownie wyłączony. Czy clearInterval
program wyjdzie z setInterval
funkcji?
javascript
jquery
setinterval
clearinterval
yvonnezoe
źródło
źródło
loopname
w drugim fragmencie? Co to jest?clearloop(loopname)
która zawiera,clearInterval
ale aby ją uprościć, zmieniłem ją bezpośrednio w powyższym kodzie.Odpowiedzi:
Tak, możesz. Możesz to nawet przetestować:
W tym przykładzie ten licznik jest zerowany, gdy
i
osiągnie 5.źródło
clearInterval
, wsetInterval
którym zatrzymał się gdzieś indziej / w ogóle się nie rozpoczął?