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
Eu tenho o código acima e às vezes está funcionando, às vezes não. Gostaria de saber se o clearInterval realmente limpar o temporizador? porque existe esse monitor
botão que só será desativado quando estiver em monitoring
funcionamento. Eu tenho outro clearInterval
quando um elemento chamado .outputRemove
é clicado. Veja o código abaixo:
//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;
});
});
Mas foi ativado por um tempo antes de ser desativado novamente. O clearInterval
programa sairá da setInterval
função?
javascript
jquery
setinterval
clearinterval
yvonnezoe
fonte
fonte
loopname
no segundo trecho? O que é isso?clearloop(loopname)
que contém oclearInterval
mas para simplificá-lo, eu mudei diretamente no código acima.Respostas:
Sim você pode. Você pode até testá-lo:
Neste exemplo, esse timer limpa quando
i
atinge 5.fonte
clearInterval
se osetInterval
parou em outro lugar / não foi iniciado?