深入理解jQuery之事件移除


Posted in Javascript onJune 02, 2016

有时候事件执行完了,想取消事件的效果可以通过一定的办法来处理。比如bind()方法,可以通过unbind()方法来移除事件的效果。

比如下面的一个案例:

<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>

html部分:

<body>
<button id="btn">点击我</button>
<div id="test"></div>
</body>

当点击按钮btn时,触发了三个点击事件,这里的append()方法,向div层中传递了三个段落内容。

append() 方法在被选元素的结尾(仍然在内部)插入指定内容。它与html()方法还是不同的,html()方法是改变整个元素中的内容,而不是向元素结尾插入内容。text()方法与html() 方法类似,但区别在于html()方法中可以写入html的代码,而且可以被正确的解析,而text() 只能当html代码为正常的字符串。

这里每次点击,都会执行一次事件,想div层末尾添加段落。

下面的代码是取消事件效果的,可以通过删除事件,使点击效果失效:

<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>

$('#btn').unbind("click");这句代码的作用就是取消元素btn下的click事件。它不仅仅对于bind()方法有效,它对于click()方法同样有效。从某种角度上讲,bind("click",function(){})与click(function(){})是等价的。

 还可以针对具体的方法,删除特定的事件。

下面的代码可以参考:

<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>

unbind()方法的第二个参数是事件对应得执行函数的名字,这样执行完后,只有myFun2这个事件被删除了,其他两个click事件正常执行。

还有一种跟bind()方法类似的方法one(),区别大概就是one()方法只执行一次。

为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数。

代码如下:

<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>

 点击后,只执行一次。再次点击不会触发效果。这就是one方法。

以上这篇深入理解jQuery之事件移除就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用JavaScript获取网页中的js、css、Flash等文件
Dec 20 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
Dec 27 Javascript
jQuery.clean使用方法及思路分析
Jan 07 Javascript
jquery弹出关闭遮罩层实例
Aug 06 Javascript
使用jQuery插件创建常规模态窗口登陆效果
Aug 23 Javascript
将鼠标焦点定位到文本框最后(代码分享)
Jan 11 Javascript
JavaScript优化以及前段开发小技巧
Feb 02 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
Mar 21 jQuery
element vue Array数组和Map对象的添加与删除操作
Nov 14 Javascript
浅谈bootstrap layer.open中end的使用方法
Sep 12 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
Oct 25 Javascript
JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析
Mar 02 Javascript
深入理解JQuery循环绑定事件
Jun 02 #Javascript
JQuery在循环中绑定事件的问题详解
Jun 02 #Javascript
Javascript字符串拼接小技巧(推荐)
Jun 02 #Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
Jun 02 #Javascript
JS从一组数据中找到指定的单条数据的方法
Jun 02 #Javascript
jquery使用on绑定a标签无效 只能用live解决
Jun 02 #Javascript
深入理解jQuery事件绑定
Jun 02 #Javascript
You might like
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
PHP静态类
2006/11/25 PHP
PHP取进制余数函数代码
2012/01/19 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
PHP单例模式数据库连接类与页面静态化实现方法
2019/03/20 PHP
用javascript实现给图片加链接
2007/08/15 Javascript
php gethostbyname获取域名ip地址函数详解
2010/01/24 Javascript
jquery自动将form表单封装成json的具体实现
2014/03/17 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
node.js中module.exports与exports用法上的区别
2016/09/02 Javascript
jQuery实现可拖拽的许愿墙效果【附demo源码下载】
2016/09/14 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
使用npm安装最新版本nodejs
2018/01/18 NodeJs
微信小程序实现人脸检测功能
2018/05/25 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
js实现数字从零慢慢增加到指定数字示例
2019/11/07 Javascript
js实现左右轮播图
2020/01/09 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
举例介绍Python中的25个隐藏特性
2015/03/30 Python
python3中set(集合)的语法总结分享
2017/03/24 Python
python利用rsa库做公钥解密的方法教程
2017/12/10 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
Numpy实现卷积神经网络(CNN)的示例
2020/10/09 Python
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
目标责任书范文
2014/04/14 职场文书
目标管理责任书
2014/04/15 职场文书
爱护公物标语
2014/06/24 职场文书
改进作风怎么办发言材料
2014/08/17 职场文书
拉贝日记观后感
2015/06/05 职场文书
2019已经过半,你知道年中工作总结该怎么写吗?
2019/07/03 职场文书
手把手教你导入Go语言第三方库
2021/08/04 Golang
如何解决goland,idea全局搜索快捷键失效问题
2022/04/03 Golang