所以我的问题有两个限制因素:
所以我的问题是我在点击事件发生后尝试取消绑定,然后在点击事件代码完成后重新绑定它。我这样做是为了防止代码当前正在进行中的重复点击(我有fadeIn / Out动画,可以快速点击按钮两次或三次,从而执行我的代码2或3次,这是不需要的) 。我正在使用的代码如下:
$item.live("click", handleClick);
和
function handleClick(ev) {
$(this).die("click");
// perform code here, including things with 'ev'
$(this).live("click", handleClick);
}
我是疯了还是应该没有问题?现在,我可以点击一次,但之后不会再次点击。很明显die()正在工作,但是由于某种原因它没有被重新绑定到该函数。我已经验证它确实到达handleClick()中的代码以重新绑定实时点击。
有什么想法吗?任何帮助将不胜感激。感谢。
答案 0 :(得分:8)
答案 1 :(得分:6)
要解除所有使用.live()绑定的点击处理程序,请使用.die()方法:
$(".clickme").die("click");
答案 2 :(得分:0)
您可以使用此模式取消绑定点击的元素并让所有其他元素生效:
$('a.myselector').live('click', function() {
// do things
$(this).unbind('click').live('click', function() {return false;});
return false; // block the link
});
适用于JQUERY 1.8.2