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 ?
clearloop(loopname)
das enthält, clearInterval
aber um es zu vereinfachen, habe ich es direkt im obigen Code geändert.
loopname
im zweiten Ausschnitt? Was ist das?