jQuery 移除事件的方法


Posted in jQuery onJune 20, 2020

在绑定事件的过程中,不仅可以为同一个元素绑定多个事件,也可以为多个元素绑定同一个事件。假设网页上有一个<button>元素,使用以下代码为该元素绑定多个相同的事件。

<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>");
       });
  })
</script>

<body>
<button id="btn">点击我</button>
<div id="test"></div>
</body>

jQuery 移除事件的方法

当单击按钮后,会出现如上图所示的效果。

1. 移除按钮元素上所有注册的事件

添加一个移除事件的按钮。然后为按钮绑定一个事件,代码如下:

<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>

<body>
<button id="btn">点击我</button>
<div id="test"></div>
<button id="delAll">删除所有事件</button>
</body>

因为元素绑定的都是 click 事件,所以不写参数也可以达到同样的目的。

$('#delAll').click(function(){
$('#btn').unbind();
});

下面来看看 unbind() 方法的语法结构:unbind([type] , [data]);

第1个参数是事件类型,第2个参数是将要移除的函数,具体说明如下。

(1) 如果没有参数,则删除所有绑定的事件。

(2) 如果提供了事件类型作为参数,则只删除该类型的绑定事件。

(3) 如果把在绑定时传递的处理函数作为第2个参数,则只有这个特定的事件处理函数会被删除。

2. 移除<button>元素的其中一个事件

首先需要为这些匿名处理函数指定一个变量。然后就可以单独删除某一个事件了, jQuery 代码如下:

<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>

<body>
<button id="btn">点击我</button>
<div id="test"></div>
<button id="delTwo">删除第二个事件</button>
</body>

当单击“删除第二个事件”按钮后,再次单击“点击我”按钮,显示下图所示的效果。

jQuery 移除事件的方法

另外,对于只需要触发一次,随后就要立即解除绑定的情况,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>

<body>
<button id="btn">点击我</button>
<div id="test"></div>
</body>

使用one() 方法为<button>元素绑定单击事件后,只在用户第1次单击按钮时,处理函数才执行,之后的单击毫无作用。

以上就是jQuery 移除事件的方法的详细内容,更多关于jQuery 移除事件的资料请关注三水点靠木其它相关文章!

jQuery 相关文章推荐
jQuery remove()过滤被删除的元素(推荐)
Jul 18 jQuery
JS和JQuery实现雪花飘落效果
Nov 30 jQuery
jQuery实现表单动态添加与删除数据操作示例
Jul 03 jQuery
jquery获取元素到屏幕四周可视距离的方法
Sep 05 jQuery
使用jQuery动态设置单选框的选中效果
Dec 06 jQuery
简单易扩展可控性强的Jquery转盘抽奖程序
Mar 16 jQuery
详解jQuery设置内容和属性
Apr 11 jQuery
jQuery 筛选器简单操作示例
Oct 02 jQuery
jQuery实现简单聊天室
Feb 08 jQuery
jquery制作的移动端购物车效果完整示例
Feb 24 jQuery
jquery+ajax实现异步上传文件显示进度条
Aug 17 jQuery
使用jQuery实现购物车
Oct 29 jQuery
Jquery ajax书写方法代码实例解析
Jun 12 #jQuery
基于ajax及jQuery实现局部刷新过程解析
Sep 12 #jQuery
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
Jun 06 #jQuery
Jquery滑动门/tab切换实现方法完整示例
Jun 05 #jQuery
JQuery实现折叠式菜单的详细代码
Jun 03 #jQuery
深入分析jQuery.one() 函数
Jun 03 #jQuery
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
Jun 02 #jQuery
You might like
PHP+JS+rsa数据加密传输实现代码
2011/03/23 PHP
php根据年月获取季度的方法
2014/03/31 PHP
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
Jquery为a标签的href赋值实现代码
2013/05/03 Javascript
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
jQuery实现表单提交时判断的方法
2014/12/13 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
Three.js快速入门教程
2016/09/09 Javascript
Web技术实现移动监测的介绍
2017/09/18 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
通过js动态创建标签,并设置属性方法
2018/02/24 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
微信小程序自定义带价格显示日历效果
2018/12/29 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
2019/05/17 Javascript
VUE实现自身整体组件销毁的示例代码
2020/01/13 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
用Python实现换行符转换的脚本的教程
2015/04/16 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
Python 串口通信的实现
2020/09/29 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
2020/09/30 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
迷你分体式空调:SoGoodToBuy
2018/08/07 全球购物
DataList 能否分页,请问如何实现?
2015/05/03 面试题
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
竞聘书格式及范文
2014/03/31 职场文书
护校行动方案
2014/05/31 职场文书
工作批评与自我批评范文
2014/10/16 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书
Springboot使用Spring Data JPA实现数据库操作
2021/06/30 Java/Android
Python 匹配文本并在其上一行追加文本
2022/05/11 Python
JS实现九宫格拼图游戏
2022/06/28 Javascript