Как остановить и начать setInterval
?Как остановить «setInterval»
Предположим, у меня есть textarea
. Я хочу остановить setInterval
на фокусе и перезагрузить setInterval
на размытие (с jQuery).
Как остановить и начать setInterval
?Как остановить «setInterval»
Предположим, у меня есть textarea
. Я хочу остановить setInterval
на фокусе и перезагрузить setInterval
на размытие (с jQuery).
Вы должны хранить идентификатор таймера интервала, когда вы начинаете его, вы будете использовать это значение позже, чтобы остановить его, используя clearInterval
функцию:
$(function() {
var timerId = 0;
$('textarea').focus(function() {
timerId = setInterval(function() {
// interval function body
}, 1000);
});
$('textarea').blur(function() {
clearInterval(timerId);
});
});
Я бы предложил добавить 'if (timerId) clearInteral (timerId)' before 'timerId = setInterval' - в противном случае не гарантируется, что интервал будет очищен, если фокус будет вызван чаще, чем размытие. при тестировании я видел эту ситуацию несколько раз (на IE10). –
@PatrickKlug справа! Мне нужно 'if (timerId) clearInteral (timerId)' также – bobbyrne01
магазин возвращение setInterval
в переменной и использовать его позже, чтобы очистить интервал.
var timer = null;
$("textarea").blur(function(){
timer = window.setInterval(function(){ ... whatever ... }, 2000);
}).focus(function(){
if(timer){
window.clearInterval(timer);
timer = null
}
});
setInterval возвращает идентификатор, который можно использовать, чтобы отменить интервал с clearInterval()
, но как я могу реализовать это с $ .live или $ .listen – testkhan
'$ .live' в настоящее время не поддерживает события' focus' и 'blur'. –
Это основано на ответ CMS,. Вопрос, заданный для таймера должен быть перезапущен на размытость и остановился на фокусе, так что я переехал его вокруг немного:
$(function() {
var timerId = 0;
$('textarea').focus(function() {
clearInterval(timerId);
});
$('textarea').blur(function() {
timerId = setInterval(function() {
//some code here
}, 1000);
});
});
У вас есть пример в: [введите описание ссылки здесь] [1] [1]: http://stackoverflow.com/questions/7483525/pausing-setinterval-when-page-browser-is-out-of-focus –
требуется только один щелчок мышью, чтобы принять ответ. Это помогает другим также видеть правильный ответ среди многих ответов. CLICK – Onimusha