Сбросить setinterval по клику

Я написал эту простую карусель. В данный момент я использую setInterval для запуска моей функции nextSlide через определенные промежутки времени. Я хочу отложить запуск таймера, когда пользователь нажимает на навигационные ссылки в течение определенного промежутка времени.

Проверьте это здесь Я хочу отложить запуск таймера, когда пользователь нажимает на навигацию ...

Я написал эту простую карусель. В данный момент я использую setInterval для запуска моей функции nextSlide через определенные промежутки времени. Я хочу отложить запуск таймера, когда пользователь нажимает на навигационные ссылки в течение определенного промежутка времени.

Проверьте это здесь Я хочу отложить запуск таймера, когда пользователь нажимает на навигацию ...

Я написал эту простую карусель. В данный момент я использую setInterval для запуска моей функции nextSlide через определенные промежутки времени. Я хочу отложить запуск таймера, когда пользователь нажимает на навигационные ссылки в течение определенного промежутка времени.

Проверьте это здесь http://jsbin.com/uzixi3/3/edit

Любая обратная связь о том, как написано остальное, тоже будет хорошей.

7
задан Reynish 17 August 2010 в 10:59
поделиться

2 ответа

Вы можете сделать что-то вроде этого: http://jsbin.com/uzixi3/5/ edit

Часть интервала находится здесь:

var int = setInterval($.fn.nextSlide, 3000);
$("#slideNavigation a").click(function() {
  clearInterval(int);
  setTimeout(function() {
    setInterval($.fn.nextSlide, 3000);
  }, 10000);
});

Я также сделал некоторые другие настройки, например, вы можете использовать оператор switch , чтобы сделать .nextSlide () намного больше читабельно и дешевле.

В целом, однако, нет причин делать эти функции методами расширения в самом jjquery, поскольку они не взаимодействуют с объектами, они могут быть просто методами, ограниченными до закрытия, например: http://jsbin.com / uzixi3 / 6 / edit

Если методы действительно выполнялись на $ ('# slideContainer') , например $ ('# slideContainer'). NextSlide () и внутри ваших методов вы использовали this.animate () и this.css () он мог бы сделать немного больше смысла, просто некоторые мысли, которые могут помочь вам стать более гибкими в процессе.

12
ответ дан 6 December 2019 в 11:45
поделиться

Вы можете сохранить возвращаемое значение setInterval в переменной, чтобы обращаться к нему позже - таким образом вы можете отменить его, если вам нужно, или перезапустить его .

Подробнее см. в статье MDC .

Основные сведения:

intervalID = setInterval(flashText, 1000);

//do something...

clearInterval(intervalID);
5
ответ дан 6 December 2019 в 11:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: