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 回答