0

我已经使用 setInterval 函数创建了简单的脚本,它在第一次单击按钮时工作正常,但是如果我单击按钮几次,我的时间间隔就会排队!我曾尝试使用Jquery 的一个函数来解决这个问题,但后来我无法再次设置我的 Intereval。
有没有办法防止这种情况?谢谢!!
小提琴示例
我的代码:

 var changeClass=function(){

   if($('ul li.active').length==0){
   $('ul li:first').addClass('active');
   }
    else if($('.active').next().length==0){
       $('.active').removeClass('active');
       $('ul li:first').addClass('active');
    }
      else{
      $('.active').removeClass('active').next('li').addClass('active')
      }

 } 

$(document).ready(function() {
 var intervalID;
    $(".button").click(function(){
    intervalID=setInterval(changeClass,1000);
    });

      $(".clear").click(function(){
      clearInterval(intervalID);
      });

});
4

1 回答 1

2

那么你到底想做什么?如果您希望在已设置间隔时忽略开始按钮,请编写您的点击处理程序,如下所示:

$(".button").click(function() {
    if(!intervalID) {
        intervalID = setInterval(changeClass,1000);
    }
});

如果您希望开始按钮重新启动间隔,那么您可以在每次单击开始按钮时单击清除按钮,如下所示:

$(".button").click(function(){
    // Perform a click on the clear button
    $(".clear").click();

    intervalID = setInterval(changeClass,1000);
});

$(".clear").click(function(){
    clearInterval(intervalID);
});
于 2012-08-04T09:56:46.183 回答