深入理解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实现禁止后退的方法
Dec 27 Javascript
js验证模型自我实现的具体方法
Jun 21 Javascript
深入理解javascript原型链和继承
Sep 23 Javascript
jQuery操作表单常用控件方法小结
Mar 23 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
Jun 29 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
Nov 13 Javascript
js面向对象的写法
Feb 19 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
Jun 01 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
Sep 20 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
Sep 07 Javascript
js实现时分秒倒计时
Dec 03 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
Oct 20 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
PHP图片处理之图片背景、画布操作
2014/11/19 PHP
PHP实现根据银行卡号判断银行
2015/04/29 PHP
学习php设计模式 php实现享元模式(flyweight)
2015/12/07 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
jquery实现拖拽调整Div大小
2015/01/30 Javascript
js实现键盘Enter键提交表单的方法
2015/05/27 Javascript
JS实现刷新父页面不弹出提示框的方法
2016/06/22 Javascript
BootStrap整体框架之基础布局组件
2016/12/15 Javascript
Bootstrap 轮播(Carousel)插件
2016/12/26 Javascript
微信小程序 页面跳转传递值几种方法详解
2017/01/12 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
js类的继承定义与用法分析
2019/06/21 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
Python进行数据科学工作的简单入门教程
2015/04/01 Python
浅谈Python中列表生成式和生成器的区别
2015/08/03 Python
在python中实现对list求和及求积
2018/11/14 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
python3实现名片管理系统(控制台版)
2020/11/29 Python
苹果中国官方网站:Apple中国
2016/07/22 全球购物
Michael Kors美国官网:美式奢侈生活风格的代表
2016/11/25 全球购物
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
绩效工资分配方案
2014/01/18 职场文书
教学评估实施方案
2014/03/16 职场文书
个人校本研修方案
2014/05/26 职场文书
十佳中学生事迹材料
2014/06/02 职场文书
公司人事专员岗位职责
2014/08/11 职场文书
2014公司年终工作总结
2014/12/19 职场文书
汽车销售助理岗位职责
2015/04/14 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书
tensorflow学习笔记之tfrecord文件的生成与读取
2021/03/31 Python
Python Pandas pandas.read_sql函数实例用法
2021/06/21 Python
正则表达式基础与常用验证表达式
2022/06/16 Javascript