深入理解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 尚未实现错误解决办法
Nov 27 Javascript
Kibo 用于处理键盘事件的Javascript工具库
Oct 28 Javascript
Js 回车换行处理的办法及replace方法应用
Jan 24 Javascript
js中substring和substr的详细介绍与用法
Aug 29 Javascript
JS的document.all函数使用示例
Dec 30 Javascript
通过JS来动态的修改url,实现对url的增删查改
Sep 01 Javascript
Javascript中的高阶函数介绍
Mar 15 Javascript
js实现div在页面拖动效果
May 04 Javascript
用jQuery向div中添加Html文本内容的简单实现
Jul 13 Javascript
jQuery实现html双向绑定功能示例
Oct 09 jQuery
浅析vue中的provide / inject 有什么用处
Nov 10 Javascript
使用原生JS实现滚轮翻页效果的示例代码
May 31 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
日本因肺炎疫情影响,这几部动漫推延播放!
2020/03/03 日漫
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
解决MySQL中文输出变成问号的问题
2008/06/05 PHP
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
2012/10/11 Javascript
js动态修改整个页面样式达到换肤效果
2014/05/23 Javascript
深入理解Javascript中this的作用域
2014/08/12 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
2015/12/15 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
2016/12/15 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
2017/01/16 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
js操作二进制数据方法
2018/03/03 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
使用Vue实现移动端左滑删除效果附源码
2019/05/16 Javascript
JavaScript canvas实现文字时钟
2021/01/10 Javascript
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
Python 正则表达式匹配字符串中的http链接方法
2018/12/25 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
Python调用JavaScript代码的方法
2020/10/27 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
CSS3弹性盒模型开发笔记(三)
2016/04/26 HTML / CSS
C#笔试题集合
2013/06/21 面试题
教育专业个人求职信
2013/12/02 职场文书
会计学自我鉴定
2014/02/06 职场文书
工厂搬迁方案
2014/05/11 职场文书
酒店七夕情人节活动策划方案
2014/08/24 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
员工福利申请报告
2015/05/15 职场文书
上甘岭观后感
2015/06/10 职场文书
用Python爬取某乎手机APP数据
2021/06/15 Python
Python编程super应用场景及示例解析
2021/10/05 Python