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去掉时光轴头尾部线条的方法实例
Jun 16 jQuery
jQuery Pagination分页插件_动力节点Java学院整理
Jul 17 jQuery
jQuery实现用户信息表格的添加和删除功能
Sep 12 jQuery
简单实现jQuery弹窗效果
Oct 30 jQuery
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
May 31 jQuery
JQuery Ajax执行跨域请求数据的解决方案
Dec 10 jQuery
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
May 17 jQuery
Jquery动态列功能完整实例
Aug 30 jQuery
jQuery实现轮播图效果demo
Jan 11 jQuery
jquery实现进度条状态展示
Mar 26 jQuery
jQuery弹框插件使用方法详解
May 26 jQuery
jQuery实现简单评论区功能
Oct 26 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获取mysql数据库中的所有表名的代码
2011/04/23 PHP
PHP封装分页函数实现文本分页和数字分页
2014/10/23 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
优秀js开源框架-jQuery使用手册(1)
2007/03/10 Javascript
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
jQuery get和post 方法传值注意事项
2009/11/03 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
JQuery中使用on方法绑定hover事件实例
2014/12/09 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
基于slideout.js实现移动端侧边栏滑动特效
2016/11/28 Javascript
String字符串截取的四种方式总结
2016/11/28 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
2019/09/11 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
2020/11/07 Javascript
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
对于Python异常处理慎用“except:pass”建议
2015/04/02 Python
讲解Python中的标识运算符
2015/05/14 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
python 获取图片分辨率的方法
2019/01/08 Python
Python 下载及安装详细步骤
2019/11/04 Python
python的sys.path模块路径添加方式
2020/03/09 Python
python性能测试工具locust的使用
2020/12/28 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
马来西亚太阳镜、眼镜和隐形眼镜网上商店:Focus Point
2018/12/13 全球购物
银行类自荐信
2014/02/04 职场文书
彩色的非洲教学反思
2014/02/18 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
幼儿园感恩节活动方案2014
2014/10/11 职场文书
电影红河谷观后感
2015/06/11 职场文书
深入理解Vue的数据响应式
2021/05/15 Vue.js
Android Flutter实现图片滑动切换效果
2022/04/07 Java/Android