¿Cómo puedo detener e iniciar setInterval
?Cómo detener "setInterval"
Supongamos que tengo un textarea
. Quiero detener setInterval
en foco y reiniciar setInterval
en desenfoque (con jQuery).
¿Cómo puedo detener e iniciar setInterval
?Cómo detener "setInterval"
Supongamos que tengo un textarea
. Quiero detener setInterval
en foco y reiniciar setInterval
en desenfoque (con jQuery).
usted tiene que almacenar el id temporizador del intervalo cuando se inicia, que va a utilizar este valor después de detenerlo, utilizando la función clearInterval
:
$(function() {
var timerId = 0;
$('textarea').focus(function() {
timerId = setInterval(function() {
// interval function body
}, 1000);
});
$('textarea').blur(function() {
clearInterval(timerId);
});
});
Sugeriría agregar un 'if (timerId) clearInteral (timerId)' antes de 'timerId = setInterval' - de lo contrario, no se garantiza que el intervalo se borre si se llama el enfoque con más frecuencia que el desenfoque. al probar esto, vi esta situación varias veces (en IE10). –
@PatrickKlug ¡tienes razón! Necesitaba 'if (timerId) clearInteral (timerId)' también – bobbyrne01
tienda el regreso de setInterval
en una variable, y úsala más tarde para borrar el intervalo.
var timer = null;
$("textarea").blur(function(){
timer = window.setInterval(function(){ ... whatever ... }, 2000);
}).focus(function(){
if(timer){
window.clearInterval(timer);
timer = null
}
});
setInterval devuelve un identificador que se puede utilizar para cancelar el intervalo con clearInterval()
, pero ¿cómo puedo implementar esto con $ .live o $ .listen – testkhan
'$ .live' actualmente no admite los eventos' focus' y 'blur'. –
Esto se basa en la respuesta de CMS. La pregunta planteada a que el temporizador se reiniciará en la falta de definición y se detuvo en el centro, por lo que lo movió un poco:
$(function() {
var timerId = 0;
$('textarea').focus(function() {
clearInterval(timerId);
});
$('textarea').blur(function() {
timerId = setInterval(function() {
//some code here
}, 1000);
});
});
Tienes un ejemplo en: [enter Descripción enlace aquí] [1] [1]: http://stackoverflow.com/questions/7483525/pausing-setinterval-when-page-browser-is-out-of-focus –
Sólo se necesita un clic del ratón para aceptar una respuesta. Ayuda a los demás a ver una respuesta correcta entre muchas respuestas. HAGA CLIC – Onimusha