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 Code oben und manchmal funktioniert es, manchmal ist es nicht. Ich wundere mich , wenn der ClearInterval tatsächlich den Timer löschen? 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 .outputRemove
geklickt wird. Siehe unten stehenden Code:Kann clearInterval() in setInterval() aufgerufen werden?
Aber es wurde für eine Weile aktiviert, bevor es wieder deaktiviert wird. Wird clearInterval
das Programm aus der setInterval
Funktion heraus bekommen?
Vielleicht ist das Problem 'loopname' im zweiten Schnipsel? Was ist das? – bfavaretto
opps Tippfehler. Ich hatte eine Funktion 'clearloop (loopname)', die das 'clearInterval' enthält, aber um es zu vereinfachen, habe ich es direkt im obigen Code geändert. – yvonnezoe