JQuery中DOM实现事件移除的方法


Posted in Javascript onJune 13, 2015

本文实例讲述了JQuery中DOM实现事件移除的方法。分享给大家供大家参考。具体如下:

可以为同一个元素绑定多个事件,也可以为多个元素绑定同一个事件。假设网页上有一个<button>元素,使用以下代码为该元素绑定多个相同的事件。

$(function(){
 $('#btn').bind("click", function(){
     $('#test').append("<p>我的绑定函数1</p>");
   }).bind("click", function(){
     $('#test').append("<p>我的绑定函数2</p>");
   }).bind("click", function(){
     $('#test').append("<p>我的绑定函数3</p>");
  });
})

1.移除按钮元素上以前注册的事件

先来看看下面代码,点击“删除所有事件”按钮,即可删除上面btn的事件:

<script type="text/javascript">
 $(function(){
  $('#btn').bind("click", function(){
      $('#test').append("<p>我的绑定函数1</p>");
    }).bind("click", function(){
      $('#test').append("<p>我的绑定函数2</p>");
    }).bind("click", function(){
      $('#test').append("<p>我的绑定函数3</p>");
   });
  $('#delAll').click(function(){
    $('#btn').unbind("click");
  });
 })
</script>
<button id="btn">点击我</button>
<div id="test"></div>
<button id="delAll">删除所有事件</button>

来看看unbind()方法的语法结构:unbind([type] [, data]);

第1个参数是事件类型,第2个参数是将要移除的函数,具体说明如下:

如果没有参数,则删除所有绑定的事件。
如果提供了事件类型作为参数,则只删除该类型的绑定事件。
如果把在绑定时传递的处理函数作为第2个参数,则只有这个特定的事件处理函数会被删除。

2.移除<button>元素的其中一个事件

首先需要为这些匿名处理函数指定一个变量。

<script type="text/javascript">
 $(function(){
  $('#btn').bind("click", myFun1 = function(){
      $('#test').append("<p>我的绑定函数1</p>");
    }).bind("click", myFun2 = function(){
      $('#test').append("<p>我的绑定函数2</p>");
    }).bind("click", myFun3 = function(){
      $('#test').append("<p>我的绑定函数3</p>");
   });
  $('#delTwo').click(function(){
    $('#btn').unbind("click",myFun2);
  });
 })
</script>
<button id="btn">点击我</button>
<div id="test"></div>
<button id="delTwo">删除第二个事件</button>

另外,对于只需要触发一次,随后就要立即解除绑定的情况,JQuery提供了一种简写方法——one()方法。one()方法可以为元素绑定处理函数。当处理函数触发一次后,立即被删除。即在每个对象上,事件处理函数只会被执行一次。

one()方法的结构与bind()方法类似,使用方法也与bind()方法相同,其语法结构如下:one (type, [data], fn);

<script type="text/javascript">
 $(function(){
  $('#btn').one("click", function(){
      $('#test').append("<p>我的绑定函数1</p>");
    }).one("click", function(){
      $('#test').append("<p>我的绑定函数2</p>");
    }).one("click", function(){
      $('#test').append("<p>我的绑定函数3</p>");
   });
 })
</script>
<button id="btn">点击我</button>
<div id="test"></div>

使用one()方法为<button>元素绑定单击事件后,只在用户第1次单击按钮时,处理函数才执行,之后的单击就不会再起作用。

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
javascript 拖放效果实现代码
Jan 22 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
Aug 17 Javascript
jquery淡入淡出效果简单实例
Jan 14 Javascript
Angular实现form自动布局
Jan 28 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
Feb 19 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
Jun 16 Javascript
基于JS代码实现实时显示系统时间
Jun 16 Javascript
Bootstrap缩略图的创建方法
Mar 22 Javascript
js实现拖拽上传图片功能
Aug 01 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
Mar 01 Javascript
微信小程序实现消息框弹出动画
Apr 18 Javascript
Node.js path模块,获取文件后缀名操作
Nov 07 Javascript
JQuery中DOM事件冒泡实例分析
Jun 13 #Javascript
JQuery中DOM事件合成用法实例分析
Jun 13 #Javascript
JQuery中DOM事件绑定用法详解
Jun 13 #Javascript
JQuery中DOM加载与事件执行实例分析
Jun 13 #Javascript
JavaScript中的Math.LN2属性用法详解
Jun 12 #Javascript
JavaScript中的Math.E属性使用详解
Jun 12 #Javascript
详解JavaScript中Date.UTC()方法的使用
Jun 12 #Javascript
You might like
德劲1107的电路分析与打磨
2021/03/02 无线电
php采集自中央气象台范围覆盖全国的天气预报代码实例
2015/01/04 PHP
php操作memcache缓存方法分享
2015/06/03 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
Laravel学习教程之本地化模块
2017/08/18 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
js实现上传图片及时预览
2016/05/07 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
在vue中实现点击选择框阻止弹出层消失的方法
2018/09/15 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
2018/12/11 jQuery
JS随机密码生成算法
2019/09/23 Javascript
[01:47]2018年度DOTA2最佳教练-完美盛典
2018/12/16 DOTA
Python读写配置文件的方法
2015/06/03 Python
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
2017/06/20 Python
python中map()函数的使用方法示例
2017/09/29 Python
pyqt5使用按钮进行界面的跳转方法
2019/06/19 Python
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
2013/06/06 HTML / CSS
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
职业规划书如何设计?
2014/01/09 职场文书
拖鞋店创业计划书
2014/01/15 职场文书
社区工作者先进事迹
2014/01/18 职场文书
办公室文员工作职责
2014/01/31 职场文书
教师节促销活动方案
2014/02/14 职场文书
投资建议书模板
2014/05/12 职场文书
在校学生证明格式
2015/06/24 职场文书
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js