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
Ich habe den obigen Code und manchmal funktioniert er, manchmal nicht. Ich frage mich, ob das clearInterval tatsächlich den Timer löscht? weil es diese monitor
Schaltfläche gibt, die nur deaktiviert wird, wenn sie in monitoring
Funktion ist. Ich habe eine andere, clearInterval
wenn ein Element namens aufgerufen .outputRemove
wird. Siehe den folgenden Code:
//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;
});
});
Es wurde jedoch eine Weile aktiviert, bevor es wieder deaktiviert wurde. Wird clearInterval
das Programm aus der setInterval
Funktion herauskommen ?
javascript
jquery
setinterval
clearinterval
Yvonnezoe
quelle
quelle
loopname
im zweiten Ausschnitt? Was ist das?clearloop(loopname)
das enthält,clearInterval
aber um es zu vereinfachen, habe ich es direkt im obigen Code geändert.Antworten:
Ja, du kannst. Sie können es sogar testen:
In diesem Beispiel wird dieser Timer gelöscht, wenn
i
5 erreicht ist.quelle
clearInterval
dassetInterval
woanders angehalten hat / überhaupt nicht gestartet hat?