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( );
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,移除事件绑定
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。