Buduję niestandardowy suwak w JavaScript i chcę, aby za każdym razem, gdy użytkownik kliknie div suwaka, suwak powinien zatrzymać się na X sekund.dlaczego cykl setInterval() staje się szybszy za każdym razem?
Mój kod to:
$(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);
});
});
Ale problemem jest to, że za każdym razem kliknij i zatrzymać suwak, cykl zaczyna się coraz szybciej. Jak mogę to naprawić?
Powinieneś używać 'setTimeout (startSlidercicle, 3000)' (bez nawiasów po 'startSlidercicle'). Ale to nie powinno powodować tego, co opisujesz ... – bfavaretto
Mogę je odtworzyć tylko wtedy, gdy wielokrotnie kliknę div .slide (zobacz http://jsfiddle.net/XdMHz/). Powinieneś dodać do tego strażnika, ponieważ tworzy on "nieobecne" liczniki czasu, których nie można odnieść/usunąć. – bfavaretto
Przeczytałem kilka pytań dotyczących tego samego tematu, ale nie mam jasności, jak zapobiegać lub zamykać te wielokrotne liczniki. – Erzei