事件处理jQuery unclick()和unbind()事件?

时间:2008-09-23 13:41:08

标签: javascript jquery css event-handling

我想将一个click事件附加到一个按钮元素,然后将其删除,但我无法使unlick()或unbind()事件按预期工作。在下面的代码中,按钮为“棕褐色”,点击事件有效。

window.onload = init; 
function init() {
    $("#startButton").css('background-color', 'beige').click(process_click);
    $("#startButton").css('background-color', 'tan').unclick();
}

如何从元素中删除事件?

4 个答案:

答案 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,因为当从代码的不同点调用它们时,它们往往会失控。

您可能需要考虑其他选项:

  • 更改按钮“已禁用”属性
  • 在“process_click”函数
  • 中实现您的逻辑

只需2美分,不是通用解决方案。