我想将一个click事件附加到一个按钮元素,然后将其删除,但我无法使unlick()或unbind()事件按预期工作。在下面的代码中,按钮为“棕褐色”,点击事件有效。
window.onload = init;
function init() {
$("#startButton").css('background-color', 'beige').click(process_click);
$("#startButton").css('background-color', 'tan').unclick();
}
如何从元素中删除事件?
答案 0 :(得分:19)
没有unclick()
之类的东西。你从哪里得到的?
您可以通过调用unbind:
从元素中删除单个事件处理程序$("#startButton").unbind("click", process_click);
如果要删除所有处理程序,或者使用匿名函数作为处理程序,可以省略unbind()
的第二个参数:
$("#startButton").unbind("click");
答案 1 :(得分:6)
或者你可能会在你使用它之后想要取消绑定点击功能,就像我不得不这样:
$('#selector').click(function(event){
alert(1);
$(this).unbind(event);
});
答案 2 :(得分:3)
unbind是你的朋友。
$("#startButton").unbind('click')
答案 3 :(得分:0)
你确定要解开吗?如果你以后再想要再次绑定它又怎么样呢?我不喜欢动态事件处理bind / unbind,因为当从代码的不同点调用它们时,它们往往会失控。
您可能需要考虑其他选项:
只需2美分,不是通用解决方案。