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 为Combo,Combobox添加清除值功能的实例
Apr 13 jQuery
基于jQuery的表单填充实例
Aug 22 jQuery
jQuery选择器之属性筛选选择器用法详解
Sep 19 jQuery
jQuery简单实现向列表动态添加新元素的方法示例
Dec 25 jQuery
jQuery实现列表的增加和删除功能
Jun 14 jQuery
jQuery实现ajax回调函数带入参数的方法示例
Jun 26 jQuery
jQuery实现checkbox全选功能完整实例
Jul 12 jQuery
JQuery animate动画应用示例
May 14 jQuery
jQuery操作attr、prop、val()/text()/html()、class属性
May 23 jQuery
jQuery设置下拉框显示与隐藏效果的方法分析
Sep 15 jQuery
用jQuery实现抽奖程序
Apr 12 jQuery
jQuery 动画与停止动画效果实例详解
May 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
利用PHP动态生成VRML网页
2006/10/09 PHP
php中使用临时表查询数据的一个例子
2013/02/03 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
再谈javascript原型继承
2014/11/10 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
2015/09/12 Javascript
jQuery中的一些小技巧
2017/01/18 Javascript
angular4自定义组件详解
2017/09/28 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
JavaScript Reflect Metadata实现详解
2019/12/12 Javascript
原生JS实现留言板
2020/03/26 Javascript
python使用正则搜索字符串或文件中的浮点数代码实例
2014/07/11 Python
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
python中as用法实例分析
2015/04/30 Python
Python中字典的基础知识归纳小结
2015/08/19 Python
jupyter安装小结
2016/03/13 Python
Python中模块与包有相同名字的处理方法
2017/05/05 Python
详解python中的装饰器
2018/07/10 Python
python 搜索大文件的实例代码
2019/07/08 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
python lambda的使用详解
2021/02/26 Python
Interhome丹麦:在线预订度假屋和公寓
2019/07/18 全球购物
新媒传信软件测试面试题
2013/02/24 面试题
医学生职业规划范文
2014/01/05 职场文书
酒店员工培训方案
2014/06/02 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
2014年社区党建工作汇报材料
2014/11/02 职场文书
库房管理员岗位职责
2015/02/12 职场文书