我使用 setInterval 函数创建了简单的脚本,它在第一次按钮单击时工作正常,但如果我单击按钮几次,我的间隔就会排队!我尝试使用 Jquery 的 one 函数来解决此问题,但随后我无法再次设置 Intereval。
有办法防止这种情况发生吗?谢谢你!!
Fiddle example
我的代码:
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);
});
});
最佳答案
那么你到底想做什么?如果您希望在设置时间间隔后忽略开始按钮,请像这样编写您的点击处理程序:
$(".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);
});
关于javascript - 防止多次点击时间隔排队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11807534/