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 相关文章推荐
jquery简单体验
Jan 10 Javascript
基于jquery库的tab新形式使用
Nov 16 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
Jun 15 Javascript
AngularJS 指令详细介绍
Jul 27 Javascript
AngularJS教程之MVC体系结构详解
Aug 16 Javascript
分享javascript、jquery实用代码段
Oct 20 Javascript
简单实现js悬浮导航效果
Feb 05 Javascript
基于LayUI实现前端分页功能的方法
Jul 22 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
Jul 19 Javascript
js module大战
Apr 19 Javascript
详解 javascript对象创建模式
Oct 30 Javascript
vue实现树状表格效果
Dec 29 Vue.js
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 常用函数库和一些实用小技巧
2009/01/01 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
JavaScript 继承使用分析
2011/05/12 Javascript
javascript parseInt() 函数的进制转换注意细节
2013/01/08 Javascript
JQuery+DIV自定义滚动条样式的具体实现
2013/06/25 Javascript
JS小游戏之象棋暗棋源码详解
2014/09/25 Javascript
12行javascript代码绘制一个八卦图
2015/04/02 Javascript
jQuery插件datepicker 日期连续选择
2015/06/12 Javascript
JS中如何比较两个Json对象是否相等实例代码
2016/07/13 Javascript
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
js实现三级联动效果(简单易懂)
2017/03/27 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
详解Javascript 中的 class、构造函数、工厂函数
2017/12/20 Javascript
浅谈vue.js导入css库(elementUi)的方法
2018/03/09 Javascript
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
vue 数据双向绑定的实现方法
2021/03/04 Vue.js
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
Python设计模式之命令模式简单示例
2018/01/10 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
Python2及Python3如何实现兼容切换
2020/09/01 Python
python 基于wx实现音乐播放
2020/11/24 Python
匡威德国官网:Converse德国
2019/01/26 全球购物
Lentiamo比利时:便宜的隐形眼镜
2020/02/14 全球购物
自1926年以来就为冰岛保持温暖:66°North
2020/11/27 全球购物
如何用Lucene索引数据库
2016/02/23 面试题
天逸系统(武汉)有限公司Java笔试题
2015/12/29 面试题
档案信息化建设方案
2014/05/16 职场文书
2014年企业党支部工作总结
2014/12/04 职场文书
环境建议书
2015/02/04 职场文书