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插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
Mar 22 jQuery
Jquery中attr与prop的区别详解
May 27 jQuery
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
Jul 17 jQuery
jQuery之动画ajax事件(实例讲解)
Jul 18 jQuery
jQuery选择器之属性过滤选择器详解
Sep 28 jQuery
jQuery实现弹窗下底部页面禁止滑动效果
Dec 19 jQuery
jquery拖拽自动排序插件使用方法详解
Jul 20 jQuery
jQuery时间戳和日期相互转换操作示例
Dec 07 jQuery
jQuery.parseJSON()函数详解
Feb 28 jQuery
layui+jquery支持IE8的表格分页方法
Sep 28 jQuery
JQuery表单元素取值赋值方法总结
May 12 jQuery
jQuery zTree如何改变指定节点文本样式
Oct 16 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模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
php导入大量数据到mysql性能优化技巧
2014/12/29 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
Ajax和PHP正则表达式验证表单及验证码
2016/09/24 PHP
django中的ajax组件教程详解
2018/10/18 PHP
JS动画效果代码3
2008/04/03 Javascript
三级下拉菜单的js实现代码
2011/05/23 Javascript
jquery 选取方法都有哪些
2014/05/18 Javascript
控制台报错object is not a function的解决方法
2014/08/24 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
2015/10/04 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
2019/04/26 Javascript
封装微信小程序http拦截器过程解析
2019/08/13 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
jQuery 淡入/淡出效果函数用法分析
2020/05/19 jQuery
Vue+element-ui添加自定义右键菜单的方法示例
2020/12/08 Vue.js
python实现2048小游戏
2015/03/30 Python
替换python字典中的key值方法
2018/07/06 Python
python 遍历目录(包括子目录)下所有文件的实例
2018/07/11 Python
python实现比较类的两个instance(对象)是否相等的方法分析
2019/06/26 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
美国小蜜蜂Burt’s Bees德国官网:天然唇部、皮肤和身体护理产品
2020/06/14 全球购物
应届生高等护理求职信
2013/10/12 职场文书
儿科护士实习自我鉴定
2013/10/17 职场文书
演讲稿怎么写
2014/01/07 职场文书
代理班主任的自我评价
2014/02/04 职场文书
党员大会主持词
2014/04/02 职场文书
网页美工求职信范文
2014/04/17 职场文书
厨房领班竞聘演讲稿
2014/04/23 职场文书
骨干教师培训方案
2014/05/06 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
详解Python类和对象内容
2021/06/22 Python