答えて

3

成功した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/

+0

これは素晴らしいソリューションです。私は、どの要素がアニメ化しているかを判断するために必要なロジックが、要素そのものにどのように含まれているのが好きです。別の方法として、変数を使用してアニメーションを開始するタイミングを追跡する方法があります。特定のクラスの要素をスキャンするコストが関連しない限り、代替手段を使用する理由はありません。 – rkw

+0

これは、 '$( '。thumb-element' ) 'セレクタを呼び出すことができます(DOM内に' document.ready'がある場合、そのイベントを使用します)。 – Jasper

+0

ええ、良い電話、ありがとうジャスパー。 – mheavers

関連する問題