gpt4 book ai didi

javascript - 帮助 JS setInterval,有时会很疯狂!

转载 作者:行者123 更新时间:2023-11-30 13:34:48 25 4
gpt4 key购买 nike

大家好。我在编写有关 setInterval 的脚本时遇到了一些麻烦。有时它会变得疯狂,甚至在间隔时间到达之前就开始重复射击。

基本上我有这个 slider ,我希望它每隔一段时间自动滑动,这是我的脚本,但就像我说的那样,它有点疯狂。我做错了什么?

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);

最佳答案

setInterval(与 setTimeout 一样)在超时到期时将回调函数添加到事件队列中 - 如果同时发生其他事件处理,这可能会导致多个排队的回调。我更喜欢使用 setTimeout 并让回调函数安排另一个超时。这样,您只会在上一个调用完成后安排下一个调用。

function callback(){
setTimeout(callback,8000);
}
setTimeout(callback,8000);

哦,还有,不需要将 autoAdvance 包装在 setInterval 的函数中。

setTimeout(autoAdvance,8000);

关于javascript - 帮助 JS setInterval,有时会很疯狂!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5307595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com