1

jqueryクリックが添付された画像があります

<img src=pic.gif id="action">

そしていくつかのjquery

$("#action").click(function(){ 
    alert("DONE");
    }); 

アクション関数が実行されてから x 秒間実行できないようにするには、どうすればこれを編集できますか? クリックするたびに 5 秒間無効にするかどうかを指定します。

4

2 に答える 2

3

関数を変数に格納できます。その中で、イベントのバインドを解除し、再度アタッチします。これにより、期間が経過した後にのみ実行されるようになります..

これを試して

var click = function() {
    $("#action").click(function() {
        alert("DONE");
        // Unbind the event
        $('#action').unbind();
        // Call the function after 2 second delay
        setTimeout(function() {
            click();
        }, 2000);
    });
    };
click();
​

このデモをチェック

于 2012-09-11T16:59:05.483 に答える
0

これは単なる例です。名前空間イベントを調べて、すべてのclickハンドラーのバインドを解除しないようにすることをお勧めします。

var action_click = function(){
  var $self = $(this);

  alert("done"); // do your thing

  $self.unbind('click'); // unbind the click handler

  // rebind the handler after 5 second delay
  setTimeout(function(){
    $self.click(action_click);
  }, 5000);

};

// setup initial click handler
$('#action').click(action_click);

フィドルの

于 2012-09-11T16:55:49.810 に答える