il mio problema è che non riesco a fermare un timer.stop settimeout in funzione ricorsiva
Avevo this method per impostare un timeout da questo forum. Si supponeva di memorizzare l'identificatore nella variabile globale. Per caso, ho scoperto che è ancora in esecuzione dopo aver nascosto "mydiv".
Ho anche bisogno di sapere ora, se la funzione ricorsiva crea più istanze o solo una per i timeout. Perché prima pensavo che sovrascrisse "var mytimer" ogni volta. Ora non ne sono così sicuro.
Quale sarebbe un modo solido per fermare il timer ??
var updatetimer= function() {
//do stuff
setTimeout(function(){updatetimer();}, 10000);
}//end function
//this should start and stop the timer
$("#mybutton").click(function(e) {
e.preventDefault();
if($('#mydiv').is(':visible')){
$('#mydiv').fadeOut('normal');
clearTimeout(updatetimer);
}else{
$('#mydiv').fadeIn('normal');
updatetimer();
}
});
grazie, Richard
direi che era piuttosto male - è funzionale, ma non c'è modo di cancellarlo (perché il valore di setTimeout non viene catturato), ma è facilmente riparato e banale rispetto a fare una richiesta ogni secondo. È davvero eccessivo, imho. – annakata
grazie, ora non capisco più il mio codice. Qual è il vantaggio di usare quelle funzioni anonime in ogni caso ??? vedi il link –
che è tutta un'altra domanda perché la risposta è piuttosto ampia :) – annakata