jsFiddle
jquery イベントとアニメーションで実行されるカスタマイズされたドロップダウン メニューを使用します。
この問題は、mouseenter を使用してドロップダウンを数回アクティブにしたときに発生し、その結果、メニューが下にスライドしてから上に数回スライドします。.stop(true) を追加して修正しようとしましたが、成功しましたが、このような他の問題が発生しました。
私はそのアドバイス(jsFiddle Here)に従いましたが、それはより魅力のない問題を引き起こします。
関数が重複して起動するのを停止する方法が必要ですが、ユーザーが.mouseleave
をトリガーした場合は、「スライドダウン」をすぐに停止してから「スライドアップ」することができます。成功 :(
アイデア、アドバイス、批判は大歓迎です。
質問する
2657 次
1 に答える
1
基本的には、イベント ハンドラーの実行を遅らせることになります。
var mouseoverTimer = null;
$('.elem').mouseover(function(){
clearTimeout(mouseoverTimer); //ignore previous trigger
mouseoverTimer = setTimeout(function(){ //wait to execute handler again
//execute actual handler here
}, 10);
});
指定された間隔内に同じハンドラーが呼び出された場合、保留中の実行はキャンセルされ、その間隔内に後続のトリガーがないことを期待して、10 ミリ秒後に実行するために再度キューに入れられます。
于 2012-08-25T04:54:36.247 に答える