如何停止“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