2011-12-09 120 views
0

我需要的是:停止眨眼事件

點擊一個按鈕,使眨眼事件停止。

這是如何我試圖做的:

var blink = function(){ 
    $('#blinker').toggle(); 
}; 
setInterval(blink, 800); 

$("#stopBlink").click(function(){ 
    clearInterval(blink); 
}); 

和DOS無法正常工作,有什麼我失蹤?

Working example

謝謝!

+0

https://developer.mozilla.org/en/DOM/window.setInterval – Andrew

回答

2

所有你需要做的是:

blink_flag = setInterval(blink, 800); 

$("#stopBlink").click(function(){ 
    clearInterval(blink_flag); 
}); 

我建議增加:

$('#blinker').show(); 

調用clearInterval後。

+0

完美,感謝所有:) –

1

我想你是用錯誤的方式使用clearInterval()clearInterval()的參數是由setInterval()創建的ID,並且您正在使用setInterval()使用的功能。

var blink = function(){ 
    $('#blinker').toggle(); 
}; 
var glbTimer = setInterval(blink, 800); //declare an ID created by `setInterval()` 

$("#stopBlink").click(function(){ 
    clearInterval(glbTimer); //clear the interval of the ID. 
}); 

查看此link瞭解更多信息。

也許你可以試試這個demo

1

您正試圖在功能上使用clearInterval。這將不起作用,因爲clearInterval將間隔的唯一ID作爲參數。該參數將由setInterval函數返回。如果您將唯一ID存儲在一個變量中,並將其傳遞給clearInterval,則它可以正常工作。試試這個:

var blink = function(){ 
    $('#blinker').toggle(); 
}; 
var blinkID = setInterval(blink, 800); 

$("#stopBlink").click(function(){ 
    clearInterval(blinkID); 
}); 

MDN

Demo

1

您正在嘗試停止閃爍切換功能,當你真正應該保存的時間間隔在一個變量,並調用clearInterval該變量,如clearInterval需要setInterval對象作爲參數的實例:https://developer.mozilla.org/en/DOM/window.clearTimeout

http://jsfiddle.net/HTRZk/22/

var blink = setInterval(function(){ 
    $('#blinker').toggle()} 
, 800); 

$("#stopBlink").click(function(){ 
    clearInterval(blink); 
}); 

此外,你需要確保當而文字隱藏你再次顯示該項目被停止閃爍事件。中。點擊事件添加:

$('#blinker').show(); 
+0

哇哦,這實際上增加了討論。關於該功能的特定頁面上的信息是正確的。 現在我改變了http://www.w3schools.com/jsref/met_win_clearinterval.asp鏈接到一個MDN,但是,開心嗎? –

+0

爲什麼每個人都會冒犯?我沒有說這是不正確的。你沒有倒下,是嗎?我只是讓你知道,除非你有其他選擇,否則W3School可能不是最適合用作參考的網站。在這種情況下,您確實有其他選擇。 –

+0

因爲您可能以更具建設性的方式提供了您的反饋。採取這種單一鏈接的唯一方法是冒犯性的。 –

0
var blink = function(){ 
    $('#blinker').toggle(); 
}; 
var bl = setInterval(blink, 800); 

$("#stopBlink").click(function(){ 
    clearInterval(bl); 
});