Я создаю собственный слайдер на Javascript и хочу, чтобы каждый раз, когда пользователь нажимал на элемент div слайдера, слайдер останавливался на X секунд.
Мой код:
$(document).ready(function () {
var ciclo;
var index_slide = 1;
function startSlidercicle() {
ciclo = setInterval( function() {
// Slider code goes here
}, 3000);
}
//Here I start the slider animation
startSlidercicle();
//When the user clicks on a div called 'slide', stop the cycle and start again the animation cycle
$('.slide').on('click', function() {
clearInterval(ciclo);
setTimeout(startSlidercicle(), 3000);
});
});
Но проблема в том, что каждый раз, когда я нажимаю и останавливаю ползунок, цикл начинается все быстрее и быстрее. Как я могу это исправить?
setTimeout(startSlidercicle, 3000)
(без скобок послеstartSlidercicle
). Но это не должно быть причиной того, что вы описываете... - person bfavaretto   schedule 23.08.2013timerId
(или как вы хотите ее назвать), затем в своем обработчике кликов добавьтеclearTimeout(timerId)
, а затемtimerId = setTimeout(...
. - person nnnnnn   schedule 23.08.2013