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 tak nie jest. Zastanawiam się, czy clearInterval rzeczywiście wyczyścić timer? ponieważ istnieje ten przycisk monitor
, który zostanie wyłączony tylko wtedy, gdy jest w funkcji monitoring
. Mam kolejny clearInterval
po kliknięciu elementu o nazwie .outputRemove
. Zobacz poniższy kod:Czy wewnątrz funkcji setInterval() można wywołać metodę clearInterval()?
Został włączony na chwilę, zanim zostanie ponownie wyłączony. Czy clearInterval
odbierze program z funkcji setInterval
?
Być może problem jest 'loopname' w drugim fragmencie? Co to jest? – bfavaretto
literówka. miałem funkcję 'clearloop (loopname)', która zawiera 'clearInterval', ale aby ją uprościć, zmieniłem ją bezpośrednio w powyższym kodzie. – yvonnezoe