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 相关文章推荐
HTML代码中标签的全部属性 中文注释说明
Mar 26 Javascript
javascript preload&amp;lazy load
May 13 Javascript
javascript判断非数字的简单例子
Jul 18 Javascript
JavaScript中prototype为对象添加属性的误区介绍
Oct 15 Javascript
javascript 回调函数详解
Nov 11 Javascript
jQuery基于ID调用指定iframe页面内的方法
Jul 06 Javascript
关于 jQuery Easyui异步加载tree的问题解析
Dec 06 Javascript
浅谈Angular 的变化检测的方法
Mar 01 Javascript
node基于async/await对mysql进行封装
Jun 20 Javascript
微信小程序如何自定义table组件
Jun 29 Javascript
js 数据类型判断的方法
Dec 03 Javascript
10分钟学会js处理json的常用方法
Dec 06 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
PHP开发入门教程之面向对象
2006/12/05 PHP
MySQL修改密码方法总结
2008/03/25 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
JS图片预加载 JS实现图片预加载应用
2012/12/03 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
2013/02/05 Javascript
js验证上传图片的方法
2015/05/12 Javascript
基于jquery实现简单的手风琴特效
2015/11/24 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
详解nodejs与javascript中的aes加密
2016/05/22 NodeJs
Javascript动画效果(2)
2016/10/11 Javascript
老生常谈jquery id选择器和class选择器的区别
2017/02/12 Javascript
浅谈Node异步编程的机制
2017/10/18 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
在vue项目中使用codemirror插件实现代码编辑器功能
2019/08/27 Javascript
layer ui 导入文件之前传入数据的实例
2019/09/23 Javascript
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
python中argparse模块用法实例详解
2015/06/03 Python
python中list常用操作实例详解
2015/06/03 Python
使用Python解析JSON数据的基本方法
2015/10/15 Python
CentOS6.5设置Django开发环境
2016/10/13 Python
python字典DICT类型合并详解
2017/08/17 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
pytorch之inception_v3的实现案例
2020/01/06 Python
Django配置Bootstrap, js实现过程详解
2020/10/13 Python
python语言实现贪吃蛇游戏
2020/11/13 Python
设计师珠宝:Ylang 23
2018/05/11 全球购物
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
毕业生个人求职信范例分享
2013/12/17 职场文书
出纳担保书范文
2014/04/02 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
十八大宣传标语
2014/10/09 职场文书
2019年国庆祝福语(70句)
2019/09/19 职场文书
SQL SERVER存储过程用法详解
2022/02/24 SQL Server