unbind()方法可以移除元素已绑定的事件,它的调用格式如下:
$(selector).unbind(event,fun)
其中参数event表示需要移除的事件名称,多个事件名用空格隔开,fun参数为事件执行时调用的函数名称。
语法
unbind()函数主要有以下两种形式的用法:
用法一:
jQueryObject.unbind( [ events [, handler ]] )
移除当前匹配元素的events事件绑定的事件处理函数handler。
用法二:
jQueryObject.unbind( eventObject )
为指定事件处理函数传入的Event对象,用于移除对应的事件处理函数。
参数
参数 描述
events 可选/String类型一个或多个用空格分隔的事件类型和可选的命名空间,例如"click"、"focus click"、"keydown.myPlugin"。
handler 可选/Function类型指定的事件处理函数。
eventObject Object类型一个Event对象,用于移除传入该对象的事件处理函数。
jQuery 1.4.3 新增支持参数handler可以为false。用于移除绑定事件时,handler参数为false值的事件处理函数。
如果省略参数handler,则移除匹配元素指定类型的事件上绑定的所有事件处理函数。
如果省略了所有参数,则表示移除匹配元素上为任何元素绑定的任何事件类型的任何事件处理函数。
返回值
unbind()函数的返回值为jQuery类型,返回当前jQuery对象本身。
实际上,unbind()函数的参数全是筛选条件,只有匹配所有参数条件的事件处理函数都将被移除。参数越多,限定条件就越多,被移除的范围就越小。
示例&说明
请参考下面这段初始HTML代码:
<input id="btn1" type="button" value="点击1" /> <input id="btn2" type="button" value="点击2" /> <a id="a1" href="#">CodePlayer</a>
首先,我们为上述button和<a>元素绑定事件,然后使用unbind()函数解除事件绑定,相应的代码如下:
function btnClick1(){ alert( this.value + "-1" ); } function btnClick2(){ alert( this.value + "-2" ); } var $buttons = $(":button"); // 为所有button元素的click事件绑定事件处理函数btnClick1 $buttons.bind( "click", btnClick1 ); // 为所有button元素的click事件绑定事件处理函数btnClick2 $buttons.bind( "click", btnClick2 ); // 为所有a元素的click、mouseover、mouseleave事件绑定事件处理函数 $("a").bind( "click mouseover mouseleave", function(event){ if( event.type == "click" ){ alert("点击事件"); }else if( event.type == "mouseover" ){ $(this).css("color", "red"); }else{ $(this).css("color", "blue"); } }); // 移除为所有button元素的click事件绑定的事件处理函数btnClick2 // 点击按钮,只执行btnClick1 $buttons.unbind("click", btnClick2); // 移除为所有button元素的click事件绑定的所有事件处理函数(btnClick1和btnClick2) // 点击按钮,不会执行任何事件处理函数 // $buttons.unbind("click"); // 只移除为btn1元素的click事件绑定的所有事件处理函数 // btn2元素的click事件仍然有效 // $("#btn1").unbind("click"); // 移除为所有a元素的任何事件绑定的所有处理函数 // 点击链接,或用鼠标在链接上移入、移出,都不会触发执行任何事件处理函数 // $("a").unbind( );unbind()函数还可以根据传入的事件对象来移除函数。以下jQuery代码只允许第一次点击按钮【点击1】时弹出提示框,之后立即移除该点击事件。
var $btn1 = $("#btn1"); $btn1.bind("click", function(event){ alert("只执行一次!"); $(this).unbind( event ); // 移除当前事件处理函数 }); 此外,unbind()函数还可以只移除指定命名空间的事件绑定。 var $buttons = $(":button"); // 为所有button元素的click事件绑定事件处理函数 $buttons.bind( "click.foo.bar", function btnClick1(){ alert( "click-1" ); } ); // 为所有button元素的click事件绑定事件处理函数 $buttons.bind( "click.test.bar", function btnClick1(){ alert( "click-2" ); } ); // 移除包含命名空间foo的click事件绑定的事件处理函数 $buttons.unbind( "click.foo" ); // 移除click-1 //移除包含命名空间bar的click事件绑定的事件处理函数 // $buttons.unbind( "click.bar" ); // 移除click-1和click-2 //移除包含命名空间test的click事件绑定的事件处理函数 // $buttons.unbind( "click.test" ); // 移除click-2 // 移除所有button元素的click事件绑定的所有事件处理函数 // $buttons.unbind("click"); // 移除click-1和click-2
以上这篇浅析jquery unbind()方法移除元素绑定的事件就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
本文向大家介绍浅谈Jquery为元素绑定事件,包括了浅谈Jquery为元素绑定事件的使用技巧和注意事项,需要的朋友参考一下 Jquery如何为元素绑定事件,小记一下,防止忘记了! 以上所述就是本文的全部内容了,希望大家能够喜欢。
本文向大家介绍浅析jquery数组删除指定元素的方法:grep(),包括了浅析jquery数组删除指定元素的方法:grep()的使用技巧和注意事项,需要的朋友参考一下 遇到的问题 今天遇到一个问题,删除数组中的一个指定元素,并返回新的数组。 我定义的js数组是这样的: 想达到的效果 我想达到的效果是这样的: 删除索引=1的元素,并返回新数组。 返回的结果是: 我们知道,原生的javascript有
本文向大家介绍JQuery1.8 判断元素是否绑定事件的方法,包括了JQuery1.8 判断元素是否绑定事件的方法的使用技巧和注意事项,需要的朋友参考一下 On previous versions, you could call it like for other data : obj.data('events'); In jQuery 1.8, this direct access was re
本文向大家介绍详谈jQuery unbind 删除绑定事件 / 移除标签方法,包括了详谈jQuery unbind 删除绑定事件 / 移除标签方法的使用技巧和注意事项,需要的朋友参考一下 jQuery unbind 删除绑定事件 unbind([type],[data]) 是 bind()的反向操作,从每一个匹配的元素中删除绑定的事件。如果没有参数,则删除所有绑定的事件。你可以将你用bind()注
本文向大家介绍jQuery给动态添加的元素绑定事件的方法,包括了jQuery给动态添加的元素绑定事件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery给动态添加的元素绑定事件的方法。分享给大家供大家参考。具体分析如下: jquery中绑定事件一般使用bind,或者click,但是这只能是对已经加载好的元素定义事件,那些后来添加插入的元素则需要另行绑定。在1.7版本以前使用l
本文向大家介绍浅谈jquery之on()绑定事件和off()解除绑定事件,包括了浅谈jquery之on()绑定事件和off()解除绑定事件的使用技巧和注意事项,需要的朋友参考一下 off()函数用于移除元素上绑定的一个或多个事件的事件处理函数。 off()函数主要用于解除由on()函数绑定的事件处理函数。 该函数属于jQuery对象(实例)。 语法 jQuery 1.7 新增该函数。其主要有以下两