我有幻灯片使用setInterval
5秒,每张幻灯片应停止5秒。
当用户点击上一个按钮时,幻灯片将返回上一个图像。
我的问题是用户点击上一次,时间还在计算。 (之前的图像仅停止3秒而不是5秒)
用户点击时有没有办法重置时间?
setInterval(function(){
//start slide...
},5000);
$('#previous').click(function(){
//go back to previous slide and reset time
});
答案 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();