jQuery:绑定和解除绑定实时点击事件

Meg*_*att 11 jquery bind click live die

所以我的问题有两个限制:

  1. 我必须在我的点击事件中使用外部函数调用,并且
  2. 我必须使用实时点击事件,而不是绑定典型的点击事件.

所以我的问题是我在点击事件发生后尝试取消绑定,然后在点击事件代码完成后重新绑定它.我这样做是为了防止代码当前正在进行中的重复点击(我有fadeIn/Out动画,可以快速点击按钮两次或三次,从而执行我的代码2或3次,这是不需要的) .我正在使用的代码如下:

$item.live("click", handleClick);
Run Code Online (Sandbox Code Playgroud)

function handleClick(ev) {

    $(this).die("click");

    // perform code here, including things with 'ev'

    $(this).live("click", handleClick);
}
Run Code Online (Sandbox Code Playgroud)

我疯了,还是应该没有问题?现在,我可以点击一次,但之后不会再次点击.很明显die()正在工作,但它并没有因为某种原因而被重新绑定到该函数.我已经验证它确实到达handleClick()中的代码以重新绑定实时点击.

有任何想法吗?任何帮助将不胜感激.谢谢.

Gre*_*reg 8

根据文件:

直播活动目前仅在对选择器使用时才有效.

$(this) 不是选择器.


小智 6

要解除使用.live()绑定的所有点击处理程序,请使用.die()方法:

$(".clickme").die("click");
Run Code Online (Sandbox Code Playgroud)