2
私のページのロールオーバーに起因する画面のちらつきの影響を避けるために、mouseOutから関数をアクティブにしたい他のサムネイルのmouseOver状態が現在発生していない場合にのみ、サムネイルが表示されます。どうすればいい?javascript/jquery - マウスオーバーリスナーがアクティブでない場合にのみ関数を実行する方法
私のページのロールオーバーに起因する画面のちらつきの影響を避けるために、mouseOutから関数をアクティブにしたい他のサムネイルのmouseOver状態が現在発生していない場合にのみ、サムネイルが表示されます。どうすればいい?javascript/jquery - マウスオーバーリスナーがアクティブでない場合にのみ関数を実行する方法
成功したmouseout
イベントが発生したときに追加されるactive
クラスのサムネイル要素があるかどうかを確認できます。必要なときにあなたはそれがアニメーションを必要とする場合、あなたは削除することができ、たとえば、active-mouseout
クラスを削除することができます
$('.thumb-element').on('mouseout', function() {
if ($('.thumb-element').filter('.active-mouseout').length == 0) {
//there are no elements with both the `thumb-element` class and the `active-mouseout` class so you can do work here
$(this).addClass('active-mouseout').animate({top : 'XXpx'}, 250, function() {
//now we remove the `active-mouseout` class so another `mouseout` event can run
$(this).removeClass('active-mouseout');
});
}
});
:他のサムネイルの要素は、このクラスを持っている場合は何もしない何も見つからなかった場合は、その後、その後、あなたのmouseout
コードを実行そのアニメーションのコールバックのこのクラス。ここで
は、上記溶液のjsfiddleです:http://jsfiddle.net/jasper/zg5g7/
これは素晴らしいソリューションです。私は、どの要素がアニメ化しているかを判断するために必要なロジックが、要素そのものにどのように含まれているのが好きです。別の方法として、変数を使用してアニメーションを開始するタイミングを追跡する方法があります。特定のクラスの要素をスキャンするコストが関連しない限り、代替手段を使用する理由はありません。 – rkw
これは、 '$( '。thumb-element' ) 'セレクタを呼び出すことができます(DOM内に' document.ready'がある場合、そのイベントを使用します)。 – Jasper
ええ、良い電話、ありがとうジャスパー。 – mheavers