基本上我有这个滑块,我想让它每隔一段时间自动滑动,这就是我的脚本,但就像我说的那样疯狂了一点点。我做错了什么?
var current = 1;
function autoAdvance()
{
if(current === -1) { return false; }
jQuery('#slide_menu ul li a').eq(current%jQuery('#slide_menu ul li a').length).trigger('click',[true]);
current++;
}
var itvl = setInterval(function(){autoAdvance();},8000);
答案 0 :(得分:3)
setInterval(与setTimeout一样)在超时到期时将回调函数添加到事件队列中 - 如果同时发生其他事件处理,则可能导致多个排队的回调。我更喜欢使用setTimeout并让回调函数调度另一个超时。这样,只有在前一个呼叫完成后,您才会安排下一个呼叫。
function callback(){
setTimeout(callback,8000);
}
setTimeout(callback,8000);
哦,也没有必要在setInterval中的函数中包含autoAdvance。
setTimeout(autoAdvance,8000);