私のコードでは、ユーザーがdivに初めてマウスオーバーしたときに関数が実行され、関数が完了するまでに30秒ほどかかります。その30秒間に、ユーザーが同じdivに再度マウスオーバーすると、関数が再び実行されるため、 2回目。そのdivからの偶数を無効にするjavascriptまたはjqueryコードはありますか?ありがとう、どんな助けでも心から感謝します。
17826 次
3 に答える
10
jQueryのon()とoff()を、ある種のコールバックで使用します。次に例を示します。
$("#myElementID").on('mouseover', myFunction);
myFunction(e) {
var myElement = e.target;
myElement.off('mouseover', myFunction);
//do something that takes 30 seconds
myElement.animate({top: 1000}, 30000, function() { //callback
myElement.on('mouseover', myFunction);
});
}
于 2012-07-02T14:10:16.853 に答える
3
var isExecuting = false;
function yourThirtySecFunction() {
if (isExecuting == true) return;
isExecuting = true;
//do your stuff here
isExecuting = false;
}
于 2012-07-02T14:02:03.263 に答える
3
あなたはjqueryの興味深い機能を見ることができます....one()
ここにそれへのリンクがあります
説明:要素のイベントにハンドラーをアタッチします。ハンドラーは、要素ごとに最大1回実行されます。
2番目のアイデア
もう1つ考えてみましょう。マウスオーバーが一度発生した場合、操作を開始する前にマウスオーバーイベントのバインドを解除し、操作が終了したらすぐに再度バインドします...
于 2012-07-02T14:02:36.213 に答える