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 创建对象和构造类实现代码
Jul 30 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
Dec 19 Javascript
使用node.js半年来总结的 10 条经验
Aug 18 Javascript
jQuery中ajax的get()方法用法实例
Dec 26 Javascript
正则表达式(语法篇推荐)
Jun 24 Javascript
Javascript+CSS3实现进度条效果
Oct 28 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
Dec 11 Javascript
JS简单获取日期相差天数的方法
Apr 24 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
Jul 19 Javascript
微信小程序支付及退款流程详解
Nov 30 Javascript
vue.js实现只能输入数字的输入框
Oct 19 Javascript
Vue实现星级评价效果实例详解
Dec 30 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 foreach、while性能比较
2009/10/15 PHP
php动态实现表格跨行跨列实现代码
2012/11/06 PHP
php实现websocket实时消息推送
2018/03/30 PHP
关于JavaScript的with 语句的使用方法
2011/05/09 Javascript
javascript自适应宽度的瀑布流实现思路
2013/02/20 Javascript
js报$ is not a function 的问题的解决方法
2014/01/20 Javascript
用Jquery.load载入页面实现局部刷新
2014/01/22 Javascript
seajs中模块的解析规则详解和模块使用总结
2014/03/12 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
js实现碰撞检测特效代码分享
2016/10/16 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
在vue中实现echarts随窗体变化
2020/07/27 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
2020/11/12 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
Python中decorator使用实例
2015/04/14 Python
解决Python中字符串和数字拼接报错的方法
2016/10/23 Python
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
django orm 通过related_name反向查询的方法
2018/12/15 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
python实现小世界网络生成
2019/11/21 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
2020/10/27 Python
关于老式浏览器兼容HTML5和CSS3的问题
2016/06/01 HTML / CSS
精彩自我鉴定
2014/01/16 职场文书
出差报告范文
2014/11/06 职场文书
JavaScript高级程序设计之变量与作用域
2021/11/17 Javascript
Python+tkinter实现高清图片保存
2022/03/13 Python