如何使用jquery取消绑定所有事件

zjm*_*126 69 jquery events unbind

我可以使用此代码删除点击事件,

$('p').unbind('click')
Run Code Online (Sandbox Code Playgroud)

但是,有一些方法可以删除所有事件吗?

有一个unbindAll在jquery中命名的方法?

谢谢

Nic*_*ver 93

您可以.unbind()不带参数调用来执行此操作:

$('p').unbind();
Run Code Online (Sandbox Code Playgroud)

来自文档:

在最简单的情况下,不带参数,.unbind()删除附加到元素的所有处理程序.

  • 如果'p'有一些子元素,那么这个语句是否会解释那些听众? (7认同)

tot*_*rds 82

从jQuery 1.7开始,off()on()是绑定和取消绑定事件处理程序的首选方法.

因此,要从元素中删除所有处理程序,请使用以下命令:

$('p').off();
Run Code Online (Sandbox Code Playgroud)

或针对特定处理程序:

$('p').off('click hover');
Run Code Online (Sandbox Code Playgroud)

要添加或绑定事件处理程序,您可以使用

$('p').on('click hover', function(e){
    console.log('click or hover!');
});
Run Code Online (Sandbox Code Playgroud)

  • 如果你想_删除你的page_中的每一个绑定,你可以调用`$(document).add('*').off();`. (30认同)
  • 这需要更新为当前答案. (7认同)
  • @Moitt很高兴我可以帮忙.请注意,在您的情况下,您可以直接使用`$('#ELEMENT_ID').off()`. (2认同)