深入理解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 相关文章推荐
循环 vs 递归浅谈
Feb 28 Javascript
js判断浏览器类型的方法
Aug 07 Javascript
jQuery中data()方法用法实例
Dec 27 Javascript
AngualrJS中的Directive制作一个菜单
Jan 26 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
May 27 Javascript
JS实现的表格行上下移动操作示例
Aug 03 Javascript
jquery attr()设置和获取属性值实例教程
Sep 25 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
Dec 11 Javascript
vue如何使用 Slot 分发内容实例详解
Sep 05 Javascript
vue组件传递对象中实现单向绑定的示例
Feb 28 Javascript
Vuex的热更替如何实现
Jun 05 Javascript
解决vue自定义指令导致的内存泄漏问题
Aug 04 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 PDOStatement::fetchAll讲解
2019/01/31 PHP
基于laravel where的高级使用方法
2019/10/10 PHP
JavaScript基础知识之数据类型
2012/08/06 Javascript
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
通用javascript代码判断版本号是否在版本范围之间
2015/11/29 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
详谈JS中实现种子随机数及作用
2016/07/19 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
nodejs操作mysql实现增删改查的实例
2017/05/28 NodeJs
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
Python算法之栈(stack)的实现
2014/08/18 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
python实现汉诺塔递归算法经典案例
2021/03/01 Python
Python进阶篇之字典操作总结
2016/11/16 Python
python非递归全排列实现方法
2017/04/10 Python
详解Python pygame安装过程笔记
2017/06/05 Python
Python数据可视化之画图
2019/01/15 Python
Python爬取阿拉丁统计信息过程图解
2020/05/12 Python
Python通过fnmatch模块实现文件名匹配
2020/09/30 Python
python使用smtplib模块发送邮件
2020/12/17 Python
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
俄罗斯苹果优质经销商商店:iPort
2020/05/27 全球购物
软件缺陷的分类都有哪些
2014/08/22 面试题
解决方案设计综合面试题
2015/08/31 面试题
企业管理毕业生求职信范文
2014/03/07 职场文书
诉讼财产保全担保书
2014/05/20 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书
浅谈Python列表嵌套字典转化的问题
2021/04/07 Python
Vue OpenLayer 为地图绘制风场效果
2022/04/24 Vue.js