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

Javascript 事件处理jQuery unclick()和unbind()事件?,javascript,jquery,css,event-handling,Javascript,Jquery,Css,Event Handling,我想将单击事件附加到按钮元素,然后稍后将其删除,但我无法使unclick()或unbind()事件按预期工作。在下面的代码中,按钮为棕褐色,点击事件生效 window.onload = init; function init() { $("#startButton").css('background-color', 'beige').click(process_click); $("#startButton").css('background-color', 'tan').un

我想将单击事件附加到按钮元素,然后稍后将其删除,但我无法使
unclick()
unbind()
事件按预期工作。在下面的代码中,按钮为棕褐色,点击事件生效

window.onload = init; 
function init() {
    $("#startButton").css('background-color', 'beige').click(process_click);
    $("#startButton").css('background-color', 'tan').unclick();
}
如何从元素中删除事件?

解除绑定是您的朋友

$("#startButton").unbind('click')

没有所谓的
unclick()
。你从哪儿弄来的

可以通过调用unbind从元素中删除单个事件处理程序:

$("#startButton").unbind("click", process_click);
如果要删除所有处理程序,或者使用匿名函数作为处理程序,可以省略
unbind()
的第二个参数:


你确定要解开它吗?如果以后你想一次又一次地把它绑起来呢?我不喜欢动态事件处理绑定/取消绑定,因为当从代码的不同点调用时,它们往往会失控

您可能想考虑替代选项:

  • 更改按钮“禁用”属性
  • 在“进程单击”功能中实现您的逻辑

只有我的2美分,不是一个通用的解决方案。

或者您可能会遇到这样一种情况,即您想在使用单击功能后立即解除其绑定,就像我不得不:

$('#selector').click(function(event){
    alert(1);
    $(this).unbind(event);
});

取消单击(fn)从每个匹配的元素中删除绑定的单击事件。您必须传递与原始绑定方法中使用的相同的函数。谢谢您提供的信息。我深入研究了一下,发现unclick()已在jQuery1.1中删除。
$('#selector').click(function(event){
    alert(1);
    $(this).unbind(event);
});