深入理解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 相关文章推荐
jquery ajax执行后台方法
Mar 18 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
Jun 03 Javascript
Javascript判断图片尺寸大小实例分析
Jun 16 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
Sep 24 Javascript
利用JS判断鼠标移入元素的方向
Dec 11 Javascript
判断颜色是否合法的正则表达式(详解)
May 03 Javascript
将angular.js项目整合到.net mvc中的方法详解
Jun 29 Javascript
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
Nov 21 Javascript
angular 用Observable实现异步调用的方法
Dec 27 Javascript
electron 安装,调试,打包的具体使用
Nov 06 Javascript
ckeditor一键排版功能实现方法分析
Feb 06 Javascript
详解如何在Javascript中使用Object.freeze()
Oct 18 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
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
2015/12/22 PHP
PHP中快速生成随机密码的几种方式
2017/04/17 PHP
万能的php分页类
2017/07/06 PHP
JS字符串函数扩展代码
2011/09/13 Javascript
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
2011/11/18 Javascript
检测input每次的输入是否合法遇到汉字输入就有问题
2012/05/23 Javascript
浅析javascript 定时器
2014/12/23 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
2017/05/05 jQuery
js下载文件并修改文件名
2017/05/08 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
React Native 图片查看组件的方法
2018/03/01 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
[04:19]DOTA2完美大师赛第四天精彩集锦
2017/11/26 DOTA
python进阶教程之文本文件的读取和写入
2014/08/29 Python
python开发中range()函数用法实例分析
2015/11/12 Python
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
2020/03/16 Python
python如何建立全零数组
2020/07/19 Python
HTML5之SVG 2D入门5—颜色的表示及定义方式
2013/01/30 HTML / CSS
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
Ajax的工作原理
2015/12/04 面试题
艺术系大学生毕业个人自我评价
2013/09/19 职场文书
幼儿园秋季开学寄语
2014/08/02 职场文书
公司离职证明范本
2014/10/17 职场文书
刑事上诉状范文
2015/05/22 职场文书
生产车间管理制度
2015/08/04 职场文书
vue实现无缝轮播效果(跑马灯)
2021/05/14 Vue.js