2016-09-08 9 views
0

ボタンを握ったときに点滅を止めたい。これのための任意のアイデア?吹き飛ばされたときの瞬きの止め方

 function blinker() { 
     $(& #39;.blinking&# 39;).fadeOut(1000); 
     $(& #39;.blinking&# 39;).fadeIn(1000); 
     } 
     setInterval(blinker, 4000); 
+1

イベントハンドラをアタッチし、間隔を指定し、ホバリングで 'clearinterval'を実行します – empiric

答えて

1

あなたの間隔のハンドラを保存し、あなたのボタンが推移したとき、それをクリアするためにそれを使用することができます:

function blinker() { 
    $('.blinking').fadeOut(1000); 
    $('.blinking').fadeIn(1000); 
} 
intervalHandler = setInterval(blinker, 4000); 

$('.blinking').mouseover(function() { 
    clearInterval(intervalHandler); 
    intervalHandler = undefined; 
}); 

ボタンがある時はいつでも点滅が再びアクティブにしたい場合もう推移していない、あなたが戻って間隔を設定することができます。

$('.blinking').mouseout(function() { 
    if (!intervalHandler) { 
     intervalHandler = setInterval(blinker, 4000); 
    } 
}); 

間隔がクリアされると、未定義のハンドラを設定することで、ensuインターバルを2回設定しないようにしてください。これにより、両方をクリアすることができなくなり、点滅が永続的になります。

@ Lugerのコメントのおかげで私の回答が編集されました。

+0

mouseoverイベントの後にsetIntervalを戻す必要はありませんか? – Luger

+0

ええええええええええええええええええええええええええええええええ、それは私にとってはうまく機能しません。まだ点滅しています – Hilary

+1

over機能が作動したことを確認しましたか?また、あなたのハンドラ変数のスコープを注意してください。私のコードでは、それがグローバルであると仮定しました。 –