如何停止“setInterval”
如何停止并启动setInterval
?
假设我有一个textarea
。 我想停止setInterval
的焦点,并重新启动setInterval
模糊(与jQuery)。
您必须在启动时间间隔中存储间隔的计时器ID ,稍后您将使用此值停止使用clearInterval
函数:
$(function () { var timerId = 0; $('textarea').focus(function () { timerId = setInterval(function () { // interval function body }, 1000); }); $('textarea').blur(function () { clearInterval(timerId); }); });
这是基于CMS的答案。 问题要求定时器重新开始模糊,停在焦点上,所以我把它移动了一下:
$(function () { var timerId = 0; $('textarea').focus(function () { clearInterval(timerId); }); $('textarea').blur(function () { timerId = setInterval(function () { //some code here }, 1000); }); });
将setInterval
的返回值存储在一个variables中,稍后使用它来清除间隔。
var timer = null; $("textarea").blur(function(){ timer = window.setInterval(function(){ ... whatever ... }, 2000); }).focus(function(){ if(timer){ window.clearInterval(timer); timer = null } });
setInterval返回一个你可以使用clearInterval()取消间隔的id