使用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?
答案 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()
将删除所有事件处理程序。