1

私のコードでは、ユーザーがdivに初めてマウスオーバーしたときに関数が実行され、関数が完了するまでに30秒ほどかかります。その30秒間に、ユーザーが同じdivに再度マウスオーバーすると、関数が再び実行されるため、 2回目。そのdivからの偶数を無効にするjavascriptまたはjqueryコードはありますか?ありがとう、どんな助けでも心から感謝します。

4

3 に答える 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 に答える