Jquery重置setInterval时间

时间:2014-11-20 10:46:16

标签: javascript jquery

我有幻灯片使用setInterval 5秒,每张幻灯片应停止5秒。

当用户点击上一个按钮时,幻灯片将返回上一个图像。

我的问题是用户点击上一次,时间还在计算。 (之前的图像仅停止3秒而不是5秒)

用户点击时有没有办法重置时间?

setInterval(function(){
  //start slide...
},5000);


$('#previous').click(function(){
    //go back to previous slide and reset time
});

2 个答案:

答案 0 :(得分:8)

像这样:

var interval;
 var timer = function(){
 interval = setInterval(function(){
  //start slide...
},5000);
};


$('#previous').click(function(){
    //go back to previous slide and reset time
   clearInterval(interval);
   timer()
});

答案 1 :(得分:1)

将区间设置代码放入函数中。将您的间隔分配给全局声明的变量。

重置时,您可以清除间隔并重新开始。

您可以通过调用startInt()来启动DOM加载的时间间隔,或者只是触发#previous上的点击,无论哪种方式更适合您的情况。

var myInterval = undefined,
    startInt = function(){
    myInterval = setInterval(function(){

    }, 5000);
};

$('#previous').click(function(){
    if(typeof myInterval != 'undefined'){ clearInterval(myInterval); }
    startInt();
}).click();