2016-10-09 3 views
1

#HoverMeの上にカーソルを置くと、#hiddenが表示されます。解除すると、#hiddenは意図したとおりに消滅します。しかし、私がホバリング・アンホーバー・ホバー・アンハーバーで本当に速いスピードで「スパム」すると、次回ホバーで#HoverMeと呼ぶと、#hiddenが瞬時に消えるだけです。私はそれを台無しにタイマーループのいくつかの種類があると思いますか?それをどうやって防ぐのですか?いずれかを削除するホバーイベントでスパムするときの要素の可視性に関する問題

$("#HoverMe").hover(function() { 
    $("#hidden").show(); 
}, function() { 
    $("#hidden").delay(1000).fadeOut(); 
}); 
+1

'$( "#隠し")((真、真).delayを停止1000).fadeOut(); ' – adeneo

答えて

1

使用stop(true)は、次のいずれかを開始する前に、アニメーションをキューに登録:。

$("#HoverMe").hover(function() { 
 
    $("#hidden").stop(true).show(); 
 
}, function() { 
 
    $("#hidden").stop(true).delay(1000).fadeOut(); 
 
});
#hidden { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="HoverMe">Hover me</div> 
 
<div id="hidden">Not hidden!</div>

+0

うまくいって、ありがとう!しかし私は別の質問があります。 '#hidden 'divが消えている間('#HoverMe'をアンホバリングしたとき)、 '#hidden'でもホバリングして消えるのを止めることができますか?同様に、 '#HoverMe'をホバーして表示させ、'#hidden 'をホバリングして隠すことを止めることができます。 **編集:**上記と同じようにしようとしました( '$("#hidden ")。)hover(function(){$(#hidden).Show()'成功せず – Nyprez

+1

'#hidden 'element * inside *'#HoverMe'、またはjQueryセレクターを '$( '#HoverMe、#hidden')'に変更して、両方の要素にイベントを配置することができます –