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 相关文章推荐
js实现页面转发功能示例代码
Aug 05 Javascript
jquery弹出关闭遮罩层实例
Aug 06 Javascript
js键盘上下左右键怎么触发function(实例讲解)
Dec 14 Javascript
js图片延迟技术一般的思路与示例
Mar 20 Javascript
JS实现漂亮的时间选择框效果
Aug 20 Javascript
ES6中Array.find()和findIndex()函数的用法详解
Sep 16 Javascript
AngularJs 延时器、计时器实例代码
Sep 16 Javascript
JS实现的全排列组合算法示例
Oct 09 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
Jan 23 jQuery
vue实现打印功能的两种方法
Sep 07 Javascript
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
vue全局自定义指令-元素拖拽的实现代码
Apr 14 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
php&amp;mysql 日期操作小记
2012/02/27 PHP
PHP 年龄计算函数(精确到天)
2012/06/07 PHP
php检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
2014/06/27 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
jQuery控制元素隐藏和显示
2017/03/03 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
Three.js利用性能插件stats实现性能监听的方法
2017/09/25 Javascript
Vue中使用方法、计算属性或观察者的方法实例详解
2018/10/31 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
JS面向对象编程实现的拖拽功能案例详解
2020/03/03 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
JavaScript实现滑块验证解锁
2021/01/07 Javascript
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
以一段代码为实例快速入门Python2.7
2015/03/31 Python
Python实现解析Bit Torrent种子文件内容的方法
2017/08/29 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
python数据处理之如何选取csv文件中某几行的数据
2019/09/02 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
2020/03/18 Python
深入理解Python 多线程
2020/06/16 Python
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
英国泽西岛植物:Jersey Plants Direct
2019/08/07 全球购物
期中考试后的反思
2014/02/08 职场文书
国培远程培训感言
2014/03/08 职场文书
环保倡议书范文
2014/05/12 职场文书
工程部部长岗位职责
2015/02/12 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
2015年客房服务员工作总结
2015/05/15 职场文书
先进个人主要事迹范文
2015/11/04 职场文书
创业计划书之酒店
2019/08/30 职场文书
【海涛教你打DOTA】虚空假面第一视角骨弓3房29杀
2022/04/01 DOTA