如何停止“setInterval”

时间:2009-12-02 07:12:42

标签: javascript jquery setinterval

如何停止并启动setInterval

假设我有textarea。我想停止焦点setInterval并重新启动setInterval模糊(使用jQuery)。

4 个答案:

答案 0 :(得分:167)

您必须在启动时存储间隔的计时器ID ,稍后您将使用此值来停止它,使用clearInterval功能:

$(function () {
  var timerId = 0;

  $('textarea').focus(function () {
    timerId = setInterval(function () {
      // interval function body
    }, 1000);
  });

  $('textarea').blur(function () {
    clearInterval(timerId);
  });

});

答案 1 :(得分:24)

这是基于CMS的答案。问题要求计时器重新启动模糊并停在焦点上,所以我把它移动了一点:

$(function () {
  var timerId = 0;

  $('textarea').focus(function () {
    clearInterval(timerId);
  });

  $('textarea').blur(function () {
    timerId = setInterval(function () {
     //some code here 
    }, 1000);
  });
});

答案 2 :(得分:18)

setInterval的返回值存储在变量中,稍后再使用它来清除间隔。

var timer = null;
$("textarea").blur(function(){
    timer = window.setInterval(function(){ ... whatever ... }, 2000);
}).focus(function(){
    if(timer){
       window.clearInterval(timer);
       timer = null
    }
});

答案 3 :(得分:11)

setInterval返回一个id,您可以使用它来取消clearInterval()

的间隔