浅析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中的相等与不等运算
Apr 25 Javascript
js模拟滚动条(横向竖向)
Feb 22 Javascript
完美的js div拖拽实例代码
Sep 24 Javascript
JavaScript中的ajax功能的概念和示例详解
Oct 17 Javascript
微信小程序 wxapp内容组件 text详细介绍
Oct 31 Javascript
微信小程序-拍照或选择图片并上传文件
Jan 06 Javascript
angular实现spa单页面应用实例
Jul 10 Javascript
jQuery实现导航栏头部菜单项点击后变换颜色的方法
Jul 19 jQuery
基于 Bootstrap Datetimepicker 联动
Aug 03 Javascript
React Native使用Modal自定义分享界面的示例代码
Oct 31 Javascript
微信小程序上传图片实例
May 28 Javascript
JS实现根据数组对象的某一属性排序操作示例
Jan 14 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
smarty内置函数section的用法
2015/01/22 PHP
php带抄送和密件抄送的邮件发送方法
2015/03/20 PHP
CI框架数据库查询之join用法分析
2016/05/18 PHP
prototype与jquery下Ajax实现的差别
2009/09/13 Javascript
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
jquery无缝向上滚动实现代码
2013/03/29 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
2016/08/25 Javascript
JS获取年月日时分秒的方法分析
2016/11/28 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
javascript基本数据类型和转换
2017/03/17 Javascript
AngularJS学习笔记之表单验证功能实例详解
2017/07/06 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
vue中倒计时组件的实例代码
2018/07/06 Javascript
搭建vue开发环境
2018/07/19 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
如何通过setTimeout理解JS运行机制详解
2019/03/23 Javascript
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
微信小程序wxml列表渲染原理解析
2019/11/27 Javascript
详解Python之数据序列化(json、pickle、shelve)
2017/03/30 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
django中使用Celery 布式任务队列过程详解
2019/07/29 Python
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
英国羊绒服装购物网站:Pure Collection
2018/10/22 全球购物
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
个人找工作的自我评价
2013/10/17 职场文书
资料员的岗位职责
2013/11/20 职场文书
网络维护中文求职信
2014/01/03 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
家长学校培训材料
2014/08/20 职场文书
大学生入党自荐书
2015/03/05 职场文书
行政介绍信范文
2015/05/04 职场文书
工作会议简报
2015/07/20 职场文书
Python基础之数据结构详解
2021/04/28 Python
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python