2011-09-12 9 views
1

私は、divに3つの隠されたスパンタグ(ラベルとして使用)があり、jqueryを使用しています。Jquery関数は他の関数を最初にキャンセルする必要があります

既に実行中の機能を停止/キャンセルする方法があるのだろうかと思います。つまり、2回目のマウスオーバーイベントにすばやく移動すると、アニメーションがキューに入れられているように見えます。つまり、移動してもまだアニメーションが残っている可能性があります。

理想的には、新しいボタンのmouseoverイベントは、そこに現在実行中のアニメーションを強制終了します。

+0

を我々はあなたが我々がjQueryを使って助けることができるので、書いたいくつかのコードを見ることができますか? –

答えて

3

はい:stop機能:これにより、現在のアニメーションが停止します。

現在キューに入っている要素をすべて削除する場合は、最初の引数をtrueに渡す必要があります。現在のアニメーションの終わり(通常は良いアイデア)にジャンプしたい場合は、2番目の引数trueを渡す必要があります。

だからあなたの呼び出しは、おそらくビットのようになります。

$('#someEl').mouseenter(function() { 
    $(this) 
     .stop(true, true) // stop any currently existing animations 
     .animate({  // and then start a new one 
      marginLeft: '20px' 
     }, 250); 
}); 
+0

余白を残してアニメーションを停止すると、何が起こったのですか? – Ben

+0

@Benはい:これを明確にするためにコードが更新されました。 – lonesomeday

+0

ありがとうございます。今は私のページには止まっていないようですが。すなわち、私はまだそれらを横切ることができます。そして、3番目の上のIMがまだ2番目のポップアップと滞在を参照してください – Ben

3

はい、対応する要素の実行中のアニメーションを停止するには、.stop()メソッドを呼び出すことができます。

http://api.jquery.com/stop/

2

はい、jqueryの内の1つの機能があります。これを試してください:

$('#divId').hover(function() { 
$(this).find('#img1').stop(true, true).slideUp(); 
$(this).find('#img2').stop(true, true).slideDown(); 
}, function() { 
$(this).find('#img1').stop(true, true).slideDown(); 
$(this).find('#img2').stop(true, true).slideUp(); 
}); 
関連する問題