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 dataTable 获取某行数据
May 05 jQuery
jQuery实现简单的手风琴效果
Apr 17 jQuery
jQuery实现上传图片前预览效果功能
Aug 03 jQuery
jQuery条件分页 代替离线查询(附代码)
Aug 17 jQuery
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
Aug 23 jQuery
jQuery中过滤器的基本用法示例
Oct 11 jQuery
利用JQUERY实现多个AJAX请求等待的实例
Dec 14 jQuery
jQuery实现图片下载代码
Jul 18 jQuery
jQuery实现弹幕特效
Nov 29 jQuery
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
Apr 30 jQuery
jQuery实现推拉门效果
Oct 19 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
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
ZF等常用php框架中存在的问题
2008/01/10 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
2014/03/08 PHP
基于递归实现的php树形菜单代码
2014/11/19 PHP
php实现源代码加密的方法
2015/07/11 PHP
PHP针对字符串开头和结尾的判断方法
2016/07/11 PHP
PHP实现多关键字加亮功能
2016/10/21 PHP
实现php删除链表中重复的结点
2018/09/27 PHP
自己的js工具 Event封装
2009/08/21 Javascript
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
SyntaxHighlighter语法高亮插件使用说明
2011/08/14 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
浅谈javascript六种数据类型以及特殊注意点
2013/12/20 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
php和js对数据库图片进行等比缩放示例
2014/04/28 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
Prototype框架详解
2015/11/25 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
2016/07/22 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
浅谈webpack+react多页面开发终极架构
2018/11/11 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
微信小程序(订阅消息)功能
2019/10/25 Javascript
JS寄快递地址智能解析的实现代码
2020/07/16 Javascript
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
python求列表交集的方法汇总
2014/11/10 Python
使用python实现tcp自动重连
2017/07/02 Python
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
Python OpenCV处理图像之图像像素点操作
2018/07/10 Python
解决python中画图时x,y轴名称出现中文乱码的问题
2019/01/29 Python
如何用H5实现一个触屏版的轮播器的实例
2017/01/09 HTML / CSS
美容院营销方案
2014/03/05 职场文书
2014年党员公开承诺践诺书
2014/03/25 职场文书
委托书范文
2014/04/02 职场文书
5.12护士节活动总结
2015/02/10 职场文书
opencv 分类白天与夜景视频的方法
2021/06/05 Python
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis