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 25 Javascript
javascript处理表单示例(javascript提交表单)
Apr 28 Javascript
使用focus方法让光标默认停留在INPUT框
Jul 29 Javascript
jQuery.trim() 函数及trim()用法详解
Oct 26 Javascript
JS Ajax请求如何防止重复提交
Jun 13 Javascript
判断输入的字符串是否是日期格式的简单方法
Jul 11 Javascript
JavaScript实现页面定时刷新(定时器,meta)
Oct 12 Javascript
jQuery Validate 数组 全部验证问题
Jan 12 Javascript
JS实现双击内容变为可编辑状态
Mar 03 Javascript
JavaScript无缝滚动效果的实例代码
Mar 27 Javascript
vue-router 控制路由权限的实现
Sep 24 Javascript
antd配置config-overrides.js文件的操作
Oct 31 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数组的概述及分类与声明代码演示
2013/02/26 PHP
php缩小png图片不损失透明色的解决方法
2013/12/25 PHP
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
你必须知道的Javascript知识点之&quot;单线程事件驱动&quot;的使用
2013/04/23 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
extjs 时间范围选择自动判断的实现代码
2014/06/24 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
2016/07/28 Javascript
详解Angular的双向数据绑定(MV-VM)
2016/12/26 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
2018/02/08 Python
基于python实现KNN分类算法
2020/04/23 Python
详解python:time模块用法
2019/03/25 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
2019/05/13 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
解决Python3下map函数的显示问题
2019/12/04 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
2020/04/22 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
Python库安装速度过慢解决方案
2020/07/14 Python
HTML5本地存储之Database Storage应用介绍
2013/01/06 HTML / CSS
HTML5各种头部meta标签的功能(推荐)
2017/03/13 HTML / CSS
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
美国户外服装和装备购物网站:Outland USA
2020/03/22 全球购物
清明节网上祭英烈活动总结
2014/04/30 职场文书
副科级后备干部考察材料
2014/05/15 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
党风廉政建设个人总结
2015/03/06 职场文书
护士心得体会范文
2016/01/25 职场文书
Django使用channels + websocket打造在线聊天室
2021/05/20 Python
在HTML中引入CSS的几种方式介绍
2021/12/06 HTML / CSS
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android
win11如何查看端口是否被占用? Win11查看端口是否占用的技巧
2022/04/05 数码科技