5
$("#prevPage").live("click",function(e) {
.................
});

たとえば、ユーザーがすでに をクリックしたprevPage場合、その中のステートメントが実行されています。ユーザーがすぐにクリックすると、再びトリガーされます。ただし、クリックイベントのトリガーは、その中のすべてのステートメントの実行が終了した後にのみ行いたいのですが、それを達成するにはどうすればよいですか?

4

5 に答える 5

2

これまたは似たようなものはどうですか:

<script type="text/javascript">
    // disable command while function is being executed.
    var sample = { 
        isExecuting : 0, 
        doWork : function (e) { 
            if (sample.isExecuting === 1) return;
            sample.isExecuting = 1;
            // do work -- whatever you please
            sample.isExecuting = 0; // say: I'm done!
        }
    };
    // live or bind
    $("#prevPage").bind("click",function(e) {
         sample.doWork(e);
    });
</script>

複数コールのシナリオをブロックする単純な「シールド」。

于 2013-03-05T04:56:01.710 に答える
1

次に、要素にフラグを設定して、クリック可能かどうかを確認します。

$("#prevPage").on("click",function(e) {

  e.preventDefault();

  //get the clickable attribute
  //if it's not existent, its undefined hence "false"
  var unclickable = this.unclickable;

  //if it's not unclickable (it's clickable)
  if(!unclickable){

    //make the flag unclickable
    this.unclickable = true;

    //do stuff

    //reset it back the way it was after operations
    this.unclickable = false;
  }


});
于 2013-03-05T04:52:21.080 に答える
0
  • unbind()があなたに代わって作業を行います。

  • 別の方法は、 detach()を使用するようなものです。プロセスが実行されているときにボタンをデタッチし、プロセスが実行を終了したら、reattach ()を使用してボタンを元に戻します。私が提案するのは、unbind()を使用することです。

于 2013-03-05T05:25:38.867 に答える
0

jqueryのアンバインド機能を使う

$("#prevPage").unbind("click");

あなたの仕事が終わった後

$("#prevPage").bind("click",function(){....your code here....});
于 2013-03-05T04:50:24.903 に答える
0

イベントがトリガーした変数を設定する

var prevPageEventTriggered = false ;

tureイベントがトリガーされたときに設定します

prevPageEventTriggered = true;

次に、クリックイベントハンドラー関数でこれの条件を追加します

$("#prevPage").live("click",function(e) {

        if ( prevPageEventTriggered ) {
                return false;
        }

        // your code goes here
        // ....
});

実行が終了している場合は、に設定できますfalse。これが役立つことを願っています

于 2013-03-05T04:54:55.777 に答える