Надеюсь, это поможет.
исал простой слайдер в jQuery с автоигрой. Если автозапуск включен, устанавливается 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();