浅析jquery unbind()方法移除元素绑定的事件


Posted in Javascript onMay 24, 2016

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()方法移除元素绑定的事件就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript常用运算符(Operators)-javascript基础教程
Dec 14 Javascript
写js时遇到的一些小问题
Dec 06 Javascript
javascript 获取图片尺寸及放大图片
Sep 04 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
Oct 22 Javascript
Javascript添加监听与删除监听用法详解
Dec 19 Javascript
iScroll中事件点击触发两次解决方案
Mar 11 Javascript
为何JS操作的href都是javascript:void(0);呢
Nov 12 Javascript
全面解析Bootstrap表单使用方法(表单控件)
Nov 24 Javascript
js 上传文件预览的简单实例
Aug 16 Javascript
js转html实体的方法
Sep 27 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
Jul 21 Javascript
JavaScript canvas实现围绕旋转动画
Nov 18 Javascript
jQuery unbind 删除绑定事件详解
May 24 #Javascript
深入理解jQuery之防止冒泡事件
May 24 #Javascript
30分钟快速掌握Bootstrap框架
May 24 #Javascript
JQuery 传送中文乱码问题的简单解决办法
May 24 #Javascript
深入理解jQuery中的事件冒泡
May 24 #Javascript
jQuery 弹出层插件(推荐)
May 24 #Javascript
基于jQuery实现仿QQ空间送礼物功能代码
May 24 #Javascript
You might like
一个自定义位数的php多用户计数器代码
2007/03/11 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
php json_encode与json_decode详解及实例
2016/12/13 PHP
基于jquery的地址栏射击游戏代码
2011/03/10 Javascript
修复ie8&amp;chrome下window的resize事件多次执行
2011/10/20 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
JavaScript实现点击自动选择TextArea文本的方法
2015/07/02 Javascript
js实现左侧网页tab滑动门效果代码
2015/09/06 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
2015/09/27 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
2017/01/13 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
微信小程序开发之toast提示插件使用示例
2017/06/08 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
JavaScript数组去重的方法总结【12种方法,号称史上最全】
2019/02/28 Javascript
JavaScript使用表单元素验证表单的示例代码
2019/08/20 Javascript
vue调用语音播放的方法
2019/09/27 Javascript
Python重新引入被覆盖的自带function
2014/07/16 Python
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
python实现机器人行走效果
2018/01/29 Python
Python处理文本换行符实例代码
2018/02/03 Python
从请求到响应过程中django都做了哪些处理
2018/08/01 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
python自动化实现登录获取图片验证码功能
2019/11/20 Python
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
资产经营总监岗位职责
2013/12/04 职场文书
国际商务英语专业求职信
2014/07/08 职场文书
2014最新离职证明范本
2014/09/12 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
小学教师师德整改措施
2014/09/29 职场文书
安全生产标语大全
2014/10/06 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书
小学六年级毕业感言
2015/07/30 职场文书