112

停止と開始の方法を教えてくださいsetInterval

があるとしtextareaます。setIntervalフォーカスで停止しsetInterval、ぼかしで再開したい(jQuery を使用)。

4

4 に答える 4

184

開始時にインターバルのタイマー IDを保存する必要があります。後でこの値を使用して、次のclearInterval関数を使用して停止します。

$(function () {
  var timerId = 0;

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

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

});
于 2009-12-02T07:16:23.087 に答える
29

これはCMSの回答に基づいています。質問では、タイマーをぼかしで再起動し、フォーカスで停止するように求めていたので、少し動かしました。

$(function () {
  var timerId = 0;

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

  $('textarea').blur(function () {
    timerId = setInterval(function () {
     //some code here 
    }, 1000);
  });
});
于 2012-06-30T16:22:40.563 に答える
19

の戻り値を変数に格納し、setInterval後でそれを使用して間隔をクリアします。

var timer = null;
$("textarea").blur(function(){
    timer = window.setInterval(function(){ ... whatever ... }, 2000);
}).focus(function(){
    if(timer){
       window.clearInterval(timer);
       timer = null
    }
});
于 2009-12-02T07:17:22.087 に答える
12

setInterval は、clearInterval() で間隔をキャンセルするために使用できる ID を返します。

于 2009-12-02T07:17:58.327 に答える