2011-12-09 14 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

すべてを行う必要がある:

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

をてclearInterval後:

blink_flag = setInterval(blink, 800); 

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

私が追加することをお勧めしたいです。

+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); 
}); 

また、あなたは点滅イベントが停止しているときにテキストが隠されている間、あなたは再びアイテムを表示することを確認する必要があります。 .clickイベント内で追加:

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

すごいああ、これは実際に議論に追加します。特定のページに関する情報は、機能に関しては正しいものです。 http://www.w3schools.com/jsref/met_win_clearinterval.aspリンクをMDNに変更しました。幸いですか? –

+0

なぜ誰もが嫌がらせをするのですか?私はそれが間違っていたとは言わなかった。あなたはダウンボートを持っていませんか?私はあなたに他の選択肢がない限り、W3Schoolsが参照として使用するのに最適なサイトでないかもしれないことをあなたに知らせていました。この場合、他にもオプションがあります。 –

+0

フィードバックはより建設的な方法で提供されている可能性があります。そのような単一のリンクをとる唯一の方法は攻撃的です。 –

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

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