禁用单击事件处理程序一段时间

use*_*510 7 javascript jquery bind settimeout unbind

我已经看过类似的问题,但提供的答案涉及按钮而不是div元素.当我单击带有id的div元素时click,单击事件处理程序将被禁用,unbind()并将计时器设置为2秒.2秒后,应再次启用click事件处理程序bind().问题是click事件处理程序似乎没有"反弹".我将文本附加到另一个div元素以检查click事件处理程序是否处于活动状态.

这是我的jsfiddle:

的jsfiddle

nnn*_*nnn 14

解决整个问题的另一种方法是不打扰解除绑定和重新绑定,只使用"禁用"标志:

$(document).ready(function(){

   var clickDisabled = false;
   $('#click').click(function(){
      if (clickDisabled)
         return;

      // do your real click processing here

      clickDisabled = true;
      setTimeout(function(){clickDisabled = false;}, 2000);
  });

});
Run Code Online (Sandbox Code Playgroud)