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滑动到底部加载下一页数据的实例代码
May 22 jQuery
基于jQuery实现的Ajax 验证用户名唯一性实例代码
Jun 28 jQuery
使用jQuery实现动态添加小广告
Jul 11 jQuery
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
Jul 22 jQuery
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
May 26 jQuery
jQuery实现菜单的显示和隐藏功能示例
Jul 24 jQuery
jquery实现联想词搜索框和搜索结果分页的示例
Oct 10 jQuery
jQuery高级编程之js对象、json与ajax用法实例分析
Nov 01 jQuery
jquery实现吸顶导航效果
Jan 08 jQuery
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
Jquery Fade用法详解
Nov 06 jQuery
jquery自定义组件实例详解
Dec 31 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电台频率大全 - 17 湖北省
2020/03/11 无线电
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
phpstorm配置Xdebug进行调试PHP教程
2014/12/01 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
Javascript实现多彩雪花从天降散落效果的方法
2015/02/02 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
bootstrap paginator分页前后台用法示例
2017/06/17 Javascript
ionic2中使用自动生成器的方法
2018/03/04 Javascript
python 中的divmod数字处理函数浅析
2017/10/17 Python
使用Python来开发微信功能
2018/06/13 Python
Python二叉搜索树与双向链表转换算法示例
2019/03/02 Python
Python3常见函数range()用法详解
2019/12/30 Python
python os模块在系统管理中的应用
2020/06/22 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
HTML5 声明兼容IE的写法
2011/05/16 HTML / CSS
美国葡萄酒网上商店:Martha Stewart Wine Co.
2019/03/17 全球购物
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
小学教育毕业生自荐信
2013/11/18 职场文书
经典导游欢迎词大全
2014/01/16 职场文书
2014年三八妇女节活动方案
2014/02/28 职场文书
合作经营协议书
2014/04/17 职场文书
努力学习演讲稿
2014/05/10 职场文书
幼儿园六一儿童节演讲稿
2015/03/19 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
大学生各类奖学金申请书
2019/06/24 职场文书
SONY AN-LP1 短波有源天线放大器
2021/04/22 无线电
深入详解JS函数的柯里化
2021/06/09 Javascript
MySQL 条件查询的常用操作
2022/04/28 MySQL