事件处理 jQuery unclick() 和 unbind() 事件?
Posted
技术标签:
【中文标题】事件处理 jQuery unclick() 和 unbind() 事件?【英文标题】:Event handling jQuery unclick() and unbind() events? 【发布时间】:2010-09-12 08:57:24 【问题描述】:我想将单击事件附加到按钮元素,然后将其删除,但我无法让 unclick()
或 unbind()
事件按预期工作。在下面的代码中,按钮颜色为tan
,点击事件有效。
window.onload = init;
function init()
$("#startButton").css('background-color', 'beige').click(process_click);
$("#startButton").css('background-color', 'tan').unclick();
如何从元素中移除事件?
【问题讨论】:
【参考方案1】:没有unclick()
这样的东西。你从哪里得到的?
您可以通过调用 unbind 从元素中删除单个事件处理程序:
$("#startButton").unbind("click", process_click);
如果要删除所有处理程序,或者使用匿名函数作为处理程序,则可以省略 unbind()
的第二个参数:
$("#startButton").unbind("click");
【讨论】:
visualjquery.com/1.0.4.html unclick(fn) 从每个匹配的元素中移除绑定的点击事件。您必须传递在原始绑定方法中使用的相同函数。 感谢您的信息。我挖得更深了,发现 unclick() 在 jQuery 1.1 中被删除了。【参考方案2】:或者您可能会遇到这样的情况,即您想在使用后立即取消绑定点击功能,就像我不得不这样做:
$('#selector').click(function(event)
alert(1);
$(this).unbind(event);
);
【讨论】:
【参考方案3】:unbind 是你的朋友。
$("#startButton").unbind('click')
【讨论】:
【参考方案4】:您确定要取消绑定吗?如果以后你想一次又一次地绑定它怎么办?我不喜欢动态事件处理绑定/解除绑定,因为当从代码的不同点调用它们时,它们往往会失控。
您可能需要考虑其他选项:
更改按钮“禁用”属性 在“process_click”函数中实现您的逻辑只是我的 2 美分,不是通用解决方案。
【讨论】:
以上是关于事件处理 jQuery unclick() 和 unbind() 事件?的主要内容,如果未能解决你的问题,请参考以下文章