0

これは私のコードです:

window.setInterval(function(){
            if(cursor == number_of_images-1){
                cursor=-1;
            }
            cursor = cursor+1;
            var mar = cursor*940;
                    $("#innerslider").delay(1000).animate({"margin-left":-mar+"px"}, {duration: 1000, queue: true});

            }, 5000);

margin-leftその仕事は、 のプロパティを変更し続けることcssです。それは正常に動作します。ここで、ページ上の特定の要素がクリックされたときに、上記の関数が次の 5 秒まで実行されないようにしたいと考えています。どうやってやるの ?

4

1 に答える 1

1

ハンドラーを名前付き関数にし、インターバルの開始からハンドルを取得して、ハンドラーを停止して再開できるようにします。

function intervalHandler(){
  if(cursor == number_of_images-1){
    cursor=-1;
  }
  cursor++;
  var mar = cursor*940;
  $("#innerslider").delay(1000).animate({"margin-left":-mar+"px"}, {duration: 1000, queue: true});
}

var timer = window.setInterval(intervalHandler, 5000);

$('#someElement').click(function(){
  window.clearInterval(timer);
  timer = window.setInterval(intervalHandler, 5000);
});
于 2013-01-11T08:29:10.593 に答える