2

間隔をリセットするには、この関数を呼び出す必要があります。

これは以前に尋ねられたことを知っています。しかし、 Javascript - setInterval を 0 にリセットするで与えられた答え は、私にとってはうまくいきません。

これが私が試したコードです:

function startTimer(){
    clearInterval(interval);    
    var interval = setInterval(function(){
        advanceSlide();
    }, 5000);
};

ページの先頭でこれを呼び出して、5 秒ごとに変化するスライドショーを開始します。このコードを使用して再度呼び出すと、魔女はその5秒をリセットすると予想しました。

onclick=startTimer();>

onclick も別のことを行いますが、これは機能していません。もう 1 つのアクションが実行されますが、間隔は変更されず、クリックする前に残っていた 5 秒と同じ部分に基づいて実行されます。

4

1 に答える 1

11

関数の外で変数を宣言する必要があります...

var interval;

function startTimer() {
    clearInterval(interval);    
    interval = setInterval(advanceSlide, 5000);
}

それ以外の場合、関数が終了すると失われます。

于 2012-08-14T21:37:29.700 に答える