禁用jquery函数x秒

时间:2012-09-11 16:48:23

标签: jquery

我有一个附有jquery点击的图像

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

和一些jquery

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

我如何编辑它以使动作函数在运行后的x秒内无法运行?假如我想在每次点击后将其禁用5秒钟。

2 个答案:

答案 0 :(得分: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();
​

选中此DEMO

答案 1 :(得分:0)

这只是一个示例,您可能需要查看Namespaced Events以防止取消绑定所有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);

示例Fiddle