【发布时间】:2011-08-15 11:08:01
【问题描述】:
我在 jQuery 中使用 autplay 编写了一个简单的 Slider。如果启用自动播放,则设置指向函数的 setTimeout。然后,此函数对其自身具有递归 setTimeout。
一切正常,除了在 Chrome 中。在我更改了一个选项卡后,稍等片刻然后返回,滑块吓坏了。看起来有多个超时活动实例......但事实并非如此,因为我将超时指定给同一个变量。
一些相关代码:
var timer;
function autoplay() {
currentPosition++;
if(currentPosition == numberOfSlides) {
// last slide
currentPosition = 0;
}
manageNavigation(currentPosition);
// Hide / show controls
manageControls(currentPosition);
// animate the slides
slideshowAnimate();
// set timer
if(autoplay_enable) {
//clearTimeout(timer);
timer = setTimeout(function() { autoplay() }, interval*1000)
}
}
function setTimer() {
if(autoplay_enable) {
timer = setTimeout(function() { autoplay() }, interval*1000)
}
}
setTimer();
【问题讨论】:
标签: jquery google-chrome settimeout