我的问题有两个限制:
- 必须在点击事件中使用外部函数调用。
- 必须使用 live click 事件,而不是绑定一个典型的 click 事件。
我的问题是,我正在尝试在单击事件发生后取消该事件的绑定,然后在单击事件代码完成后重新绑定它。我这样做是为了防止在代码当前正在处理时出现重复单击(我有 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()中的代码以重新绑定活动点击。
有什么想法吗?任何帮助都将不胜感激。谢谢。
var $tempVar = $('#' + $(this).attr('id'))
,然后说$tempVar.live("click", handleClick)
,你认为这会起作用吗? - Matt