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,它工作正常。现在我想确保当点击页面上的某个元素时,上面的函数不会运行到接下来的五秒钟。我怎样才能做到这一点 ?

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 回答