2014-09-17 2 views
0

у меня есть 5 слайдов, которые меняют после 5 секунд или мыши (Готово с SetInterval функцией, который запускает «щелчок»)Jquery эффекты слайд, нужно задержать после щелчка

Проблема следующая, например Допустим, что он установлен на # slide_1, когда прошло 4 секунды, и я вручную нажимаю # slide_2, следующий слайд (# slide_3) активируется через 1 секунду. Это все SetInterval, что вызывает щелчок и я понятия не имею, как добавить 5 секундный интервал снова, между ручным и SetInterval щелкает ..

Вот мой код,

setInterval(function() { 
     if(!$('.buttons > ul ').children('.butt_press').next().length){ 
      $('.buttons > ul').children(':first').trigger('click'); 
     } 
     else{ 
      $('.buttons > ul').children('.butt_press').next().trigger('click'); 
     } 
    }, 5500); 

благодаря

+0

Я считаю, что вы хотите сначала очистить свой интервал, а затем установить его снова при смене слайдов. Таким образом, он выходит из первого и снова запускается с полным интервалом времени. – below9k

+0

Попробуйте это решение: http://stackoverflow.com/questions/1909441/jquery-keyup-delay –

+0

не следует использовать children(). Each (function {}) вместо next(), если вы хотите итерации и сделать что-то (триггерный щелчок) на дочерних элементах? – vreddy

ответ

1

setInterval возвращает идентификатор интервала, который вы можете использовать для очистки интервала, а затем повторно создать его.

var nextSlide = function() { 
    if(!$('.buttons > ul ').children('.butt_press').next().length){ 
     $('.buttons > ul').children(':first').trigger('click'); 
    } else { 
     $('.buttons > ul').children('.butt_press').next().trigger('click'); 
    } 
}; 

var interval = setInterval(nextSlide, 5000); 

$('some_selector').on('click', function() { 
    nextSlide(); 
    clearInterval(interval); 
    interval = setInterval(nextSlide, 5000); 
}); 
+0

Спасибо, ребята, это сработало)) –

+0

@GioMamni не стесняйтесь принять ответ :) –

Смежные вопросы