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
J'ai le code ci-dessus et parfois ça marche, parfois ça ne l'est pas. Je me demande si clearInterval efface réellement la minuterie ?? car il y a ce monitor
bouton qui ne sera désactivé que lorsqu'il sera en monitoring
fonction. J'en ai un autre clearInterval
lorsqu'un élément appelé .outputRemove
est cliqué. Voir le code ci-dessous:
//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;
});
});
Mais il a été activé pendant un certain temps avant d'être à nouveau désactivé. Sortira clearInterval
le programme de la setInterval
fonction?
javascript
jquery
setinterval
clearinterval
yvonnezoe
la source
la source
loopname
dans le deuxième extrait? Qu'est-ce que c'est?clearloop(loopname)
qui contient leclearInterval
mais pour le simplifier, je l'ai changé directement dans le code ci-dessus.Réponses:
Oui, vous pouvez. Vous pouvez même le tester:
Dans cet exemple, ce minuteur s'efface lorsqu'il
i
atteint 5.la source
clearInterval
si lesetInterval
s'est arrêté ailleurs / n'a pas commencé du tout?