Надеюсь, это поможет.

исал простой слайдер в 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();

Ответы на вопрос(3)

Ваш ответ на вопрос