2016-01-16 104 views
0

我有這段代碼,最初開始間隔。然後按下按鈕,我希望停止/清除該間隔,等待X秒鐘,然後再次開始間隔。通過超時啓動間隔

此代碼啓動間隔和正常工作:

var timeout = undefined; 
var interval = setInterval(bgScroll, timeBetweenSwap); 

然後我想的時間間隔停止當我點擊該按鈕,讓它等待X秒,再次啓動(ofcourse再次按下按鈕應該重置秒的量)

$(document).on('click', '.bgscroller a', function(){ 
    clearInterval(interval); 
    clearTimeout(timeout); 

    var timeout = setTimeout(function(){ 
     var interval = setInterval(bgScroll, timeBetweenSwap); 
    }, delayAfterClick); 
}); 

現在,當我點擊按鈕幾次間隔變得瘋狂和堆積起來。我會建議它被清除......任何建議哦,我應該如何解決這個問題?

親切的問候, 納拉揚

回答

2

總之,除去最後兩個var聲明。使它timeout =interval =而不是var timeout =var interval =

您的代碼非常接近 - 它看起來像是最後幾行中的shadowingtimeoutinterval變量。

這是說的不對位:

var timeout = setTimeout(function(){ 
    var interval = setInterval(bgScroll, timeBetweenSwap); 
}, delayAfterClick); 

它應該是這樣的(非常類似):

timeout = setTimeout(function(){ 
    interval = setInterval(bgScroll, timeBetweenSwap); 
}, delayAfterClick); 

注意,我們刪除了var語句。這使用與上述類似的timeoutinterval變量,而不是使新的變量碰巧具有相同的名稱。

+1

1+對於提及陰影 –

+0

非常感謝你埃文..!你不知道我浪費了多少時間來尋找答案:( – Narayan