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 相关文章推荐
共享自己写一个框架DreamScript
Jan 20 Javascript
js查找父节点的简单方法
Jun 28 Javascript
js 操作符实例代码
Oct 24 Javascript
基于jQuery实现的仿百度首页滑动选项卡效果代码
Nov 16 Javascript
fullpage.js全屏滚动插件使用实例
Sep 06 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
May 01 jQuery
Vue2 Vue-cli中使用Typescript的配置详解
Jul 24 Javascript
微信小程序 页面跳转传值实现代码
Jul 27 Javascript
Vue-CLI3.x 设置反向代理的方法
Dec 06 Javascript
微信小程序调用微信支付接口的实现方法
Apr 29 Javascript
jsonp格式前端发送和后台接受写法的代码详解
Nov 07 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
Oct 19 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
国产动画《伍六七》原声大碟大卖,啊哈娱乐引领音乐赋能IP的新尝试
2020/03/08 国漫
简单的php中文转拼音的实现代码
2014/02/11 PHP
yii实现级联下拉菜单的方法
2014/07/31 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
原生javascript和jquery判断浏览器版本等信息
2013/07/04 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
jQuery为DOM动态追加事件的方法
2017/02/16 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
jQuery响应滚动条事件功能示例
2017/10/14 jQuery
vue如何引入sass全局变量
2018/06/28 Javascript
js将URL网址转为16进制加密与解密函数
2020/03/04 Javascript
解决vant-UI库修改样式无效的问题
2020/11/03 Javascript
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
Python urlopen 使用小示例
2008/09/06 Python
python和shell变量互相传递的几种方法
2013/11/20 Python
使用python编写android截屏脚本双击运行即可
2014/07/21 Python
Python 爬虫爬取指定博客的所有文章
2016/02/17 Python
Python 使用requests模块发送GET和POST请求的实现代码
2016/09/21 Python
python数值基础知识浅析
2019/11/19 Python
python二维键值数组生成转json的例子
2019/12/06 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
香港通票:Hong Kong Pass
2019/02/26 全球购物
管道维修工岗位职责
2013/12/27 职场文书
英语简历自我评价
2014/01/26 职场文书
2014年五四青年节演讲稿范文
2014/04/22 职场文书
2014年六一儿童节演讲稿
2014/05/23 职场文书
授权委托书怎么写
2014/09/25 职场文书
党校学习个人总结
2015/02/15 职场文书
体育教师教学随笔
2015/08/15 职场文书
go使用Gin框架利用阿里云实现短信验证码功能
2021/08/04 Golang
POST提交数据常见的四种方式
2022/01/18 HTML / CSS