Sto costruendo un cursore personalizzato su Javascript, e voglio che ogni volta che l'utente fa clic su un div del cursore, il cursore dovrebbe fermarsi per X secondi.perché il ciclo setInterval() va più veloce ogni volta?
Il mio codice è:
$(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);
});
});
Ma il problema è che ogni volta che clicco e fermo il cursore, il ciclo si avvia sempre più velocemente. Come posso ripararlo?
Si dovrebbe usare 'setTimeout (startSlidercicle, 3000)' (nessuna parentesi dopo 'startSlidercicle'). Ma questo non dovrebbe causare ciò che descrivi ... – bfavaretto
Posso solo riprodurlo se faccio clic su .slide div più volte (vedi http://jsfiddle.net/XdMHz/). Dovresti aggiungere una guardia contro questo, perché crea dei timer "rimanenti" che non puoi fare riferimento/cancellare. – bfavaretto
Ho letto alcune domande sullo stesso argomento, ma non ho ancora chiaro come prevenire o chiudere quei timer multipli – Erzei