私はJavascriptでカスタムスライダーを作成しています。ユーザーがスライダーのdivをクリックするたびに、スライダーはX秒間停止する必要があります。なぜsetInterval()サイクルが毎回速くなるのですか?
$(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);
});
});
しかし、問題は、私は、スライダをクリックして停止することを毎回で、サイクルが速く起動する:
私のコードです。どうすれば修正できますか?これに
clearInterval(ciclo);
setTimeout(startSlidercicle(), 3000);
:あなたはこの変更する必要があり
'setTimeout(startSlidercicle、3000)'( 'startSlidercicle'の後にかっこはありません)を使用してください。しかし、それはあなたが描いているものを引き起こすべきではありません... – bfavaretto
.slide divを何度もクリックすると、それを再現することができます(http://jsfiddle.net/XdMHz/を参照)。参照/クリアできない "残りの"タイマーが作成されるため、それに対してガードを追加する必要があります。 – bfavaretto
私は同じトピックについていくつかの質問を読んだことがありますが、それらの複数のタイマーを防ぐ方法や閉じる方法がわかりません – Erzei