2014-03-05 60 views
-2

我有一個輪播使用setInterval()每隔4秒在標籤之間切換。 我現在想停止這個自動切換點擊任何特定的選項卡。ClearInterval()不能立即工作

http://jsfiddle.net/qjmDU/10/是JS小提琴,我有我的html和jquery。 我猜測,問題是在錯誤的地方使用了以下代碼。請告知您認爲合適的更正。謝謝。

$(this).on("click", function (event) { 
    console.log("After clear interval" + stopVar); 
    clearInterval(stopVar);  
}); 
+1

您的問題是什麼?請修理你的jsfiddle –

+0

請在把它扔給我們之前測試你的小提琴;) –

+0

在你的小提琴中,你甚至還沒有包括jQuery – laaposto

回答

0

問題是您的間隔永遠不會被定義!

之前setInterval有這個if (timeToStand)和timeToStand永遠不會被定義。

當你定義timeToStand它的作品。

0

看着原來的小提琴這不工作:http://jsfiddle.net/qjmDU/

setInterval返回剛纔設置的時間間隔一個唯一的ID。

clearInterval預計從setInterval的

返回的唯一的ID,這樣你的代碼應該看起來像

stopVar = setInterval(...); 

... 

clearInterval(stopVar); 
0

試試這個!

var pid = setInterval(function(){ fnXPTO()},500); 

function fnXPTO() 
{ 
    // to do anything.... 
} 

明確的間隔......

window.setTimeout(function(){ 

clearInterval(pid); 

},2000); 
0

感謝糾正小提琴RobH。 user1886419,如果您查看小提琴jsfiddle.net/qjmDU/14,我按照您的建議做同樣的事情,但是自動切換僅在所有選項卡循環1次後停止,而不是立即停止,只需單擊一個選項卡。

timeToStand是在initCarousel()中傳遞的變量()

+0

有人還在線嗎? – Sagarika

+0

我只想停止點擊某個標籤的自動切換,而不是在切換所有可用標籤的循環之後。 JSFiddle的正確鏈接是jsfiddle.net/qjmDU/14 – Sagarika