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 EasyUI之验证框validatebox实例详解
Apr 10 jQuery
jQuery实现动态生成表格并为行绑定单击变色动作的方法
Apr 17 jQuery
jQuery实现div跟随鼠标移动
Aug 20 jQuery
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
Jun 26 jQuery
jQuery开源组件BootstrapValidator使用详解
Jun 29 jQuery
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
Aug 01 jQuery
基于jQuery实现图片推拉门动画效果的两种方法
Aug 26 jQuery
jQuery选择器之子元素过滤选择器
Sep 28 jQuery
使用jQuery动态设置单选框的选中效果
Dec 06 jQuery
Jquery动态列功能完整实例
Aug 30 jQuery
jquery实现商品sku多属性选择功能(商品详情页)
Dec 20 jQuery
使用jquery实现轮播图效果
Jan 02 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
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
PHP数组游标实现对数组的各种操作详解
2016/01/26 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
2016/05/04 PHP
PHP使用PDO抽象层获取查询结果的方法示例
2018/05/10 PHP
PHP的PDO事务与自动提交
2019/01/24 PHP
jquery getScript动态加载JS方法改进详解
2012/11/15 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
jquery分页对象使用示例
2014/04/01 Javascript
JavaScript实现大数的运算
2014/11/24 Javascript
node.js cookie-parser 中间件介绍
2016/06/06 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
JavaScript html5利用FileReader实现上传功能
2020/03/27 Javascript
vue插件vue-resource的使用笔记(小结)
2017/08/04 Javascript
解决在vue项目中webpack打包后字体不生效的问题
2018/09/01 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
vue-router的钩子函数用法实例分析
2019/10/26 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
Python中List.count()方法的使用教程
2015/05/20 Python
python实现在cmd窗口显示彩色文字
2019/06/24 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
python shell命令行中import多层目录下的模块操作
2020/03/09 Python
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
古驰英国官网:GUCCI英国
2020/03/07 全球购物
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
采购部部长岗位职责
2014/02/06 职场文书
超市国庆节促销方案
2014/02/20 职场文书
社区文艺活动方案
2014/08/19 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
巾帼文明岗事迹材料
2014/12/24 职场文书
安全知识竞赛主持词
2015/06/30 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers