使用.off()删除特定元素的几种类型的事件处理程序

时间:2014-10-16 18:04:49

标签: jquery

使用jQuery,我有一个元素,多个事件处理程序设置不同的方式。代码很长,遗留代码,所以我想尽可能少地改变。但是,我需要在不同时间立即删除所有事件处理程序。

以下是附加到元素的各种处理程序的示例:

$('#myElement').focus( function() {//Do Something} );
$('#myElement').keydown( function() {//Do Something} );
$('#myElement').submit( function() {//Do Something} );
$('#myElement').bind( function() {//Do Something} );
$('#myElement').click( function() {//Do Something} );

我的问题:可以通过一次调用.off()来删除所有这些吗?

$('#myElement').off();

或者他们都需要使用.on来删除.off?

2 个答案:

答案 0 :(得分:1)

是的,可以使用.off

关闭这些内容
$("#myElement").off(); //unbinds everything

答案 1 :(得分:1)

off( events [, selector ] [, handler ] )

  

删除事件处理程序。

     

<强>事件

     

类型:字符串

     

一个或更多空格分隔的事件类型和可选的命名空间,或者只是名称空间,例如&gt; “click”,“keydown.myPlugin”或“.myPlugin”。

如果要删除特定处理程序列表,请通过第一个参数传递它们。

$("#myElement").off("keydown click focus submit")

如果您要删除所有内容,$("#myElement").off()将删除所有事件处理程序。

JSFIDDLE