2012-08-14 83 views
2

我需要能夠調用此函數來重置間隔。javascript重置間隔

我知道這已被問過。但在 Javascript - Reset setInterval back to 0 給出的答案不適用於我。

這裏是我試過的代碼:

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

我打電話,在我的網頁開始啓動每5秒改變幻燈片。我用這個代碼再次調用它,女巫我預計會重置5秒。

onclick=startTimer();> 

onclick也做了另一件事,但這是什麼不工作。另一個動作發生,但間隔不會改變,其仍然基於在我點擊之前留下的5秒的相同部分。

回答

5

您需要聲明函數外部變量...

var interval; 

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

否則丟失的功能退出時。

+0

Thanks @Rocket。當我刪除匿名函數時錯過了這些,然後StackOverflow讓我證明了我的人性。 – 2012-08-14 21:39:51

+0

等等,所以你是*不是機器人? – 2012-08-14 21:41:27

+1

@火箭:我*是一個機器人,但我愚弄了他們。 – 2012-08-14 21:42:32