mi problema es que no puedo detener un temporizador.stop settimeout en la función recursiva
Tuve this method para establecer un tiempo de espera de este foro. Se supone que debe almacenar el identificador en la variable global. Por accidente, descubrí que todavía se está ejecutando después de esconder "mydiv".
También necesito saber ahora, si la función recursiva crea varias instancias o solo una para los tiempos de espera. Porque primero pensé que sobrescribe "var mytimer" cada vez. Ahora no estoy tan seguro.
¿Cuál sería una forma sólida de detener el temporizador?
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();
}
});
gracias, Richard
yo diría que era bastante malo - es funcional, pero no hay forma de cancelarlo (porque el valor de setTimeout no se captura), pero eso es fácil de arreglar y trivial en comparación con hacer una solicitud cada segundo. Eso es realmente excesivo, ¿eh? – annakata
gracias, ahora ya no entiendo mi propio código. ¿Cuál es la ventaja de usar esas funciones anónimas de todos modos? Vea el enlace –
que es una pregunta completamente diferente porque la respuesta es bastante amplia :) – annakata