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 相关文章推荐
css值转换成数值请抛弃parseInt
Oct 24 Javascript
jquery中的mouseleave和mouseout的区别 模仿下拉框效果
Feb 07 Javascript
extjs两个tbar问题探讨
Aug 08 Javascript
IE6 hack for js 集锦
Sep 23 Javascript
Javascript实现单张图片浏览
Dec 18 Javascript
seajs中模块依赖的加载处理实例分析
Oct 10 Javascript
基于Vue 2.0的模块化前端 UI 组件库小结
Dec 21 Javascript
JavaScript 中的 this 工作原理
Jun 20 Javascript
脚手架vue-cli工程webpack的作用和特点
Sep 29 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
Dec 20 Javascript
layui 监听select选择 获取当前select的ID名称方法
Sep 24 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
Feb 27 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检测数组长度函数sizeof与count用法
2014/11/17 PHP
Windows服务器中PHP如何安装redis扩展
2019/09/27 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
javascript 循环调用示例介绍
2013/11/20 Javascript
js中substr,substring,indexOf,lastIndexOf的用法小结
2013/12/27 Javascript
学习JavaScript设计模式(单例模式)
2015/11/26 Javascript
JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)
2015/12/03 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
vue-cli创建的项目,配置多页面的实现方法
2018/03/15 Javascript
Vue 中mixin 的用法详解
2018/04/23 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
2019/07/26 jQuery
vue中input的v-model清空操作
2019/09/06 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
2020/07/20 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
python中的五种异常处理机制介绍
2014/09/02 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
PyQT5 emit 和 connect的用法详解
2019/12/13 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
Python 内存管理机制全面分析
2021/01/16 Python
高校毕业生自我鉴定
2013/10/27 职场文书
精细化工应届生求职信
2013/11/17 职场文书
大学专科自荐信
2014/06/17 职场文书
父亲节活动总结
2015/02/12 职场文书
老公婚前保证书
2015/02/28 职场文书
2015年城管个人工作总结范文
2015/04/20 职场文书
numpy数据类型dtype转换实现
2021/04/24 Python