深入理解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 相关文章推荐
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
Feb 14 Javascript
extjs 学习笔记(二) Ext.Element类
Oct 13 Javascript
基于jQuery实现点击同时更改两个iframe的网址
Jul 01 Javascript
De facto standard 世界上不可思议的事实标准
Aug 29 Javascript
javascript window.confirm确认 取消对话框实现代码小结
Oct 21 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
Dec 10 Javascript
Javascript 构造函数详解
Oct 22 Javascript
原生js实现移动开发轮播图、相册滑动特效
Apr 17 Javascript
常用的JQuery函数及功能小结
Mar 24 Javascript
angular的输入和输出的使用方法
Sep 22 Javascript
对angularJs中自定义指令replace的属性详解
Oct 09 Javascript
JS快速实现简单计算器
Apr 08 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新手上路(八)
2006/10/09 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
PHP与Java对比学习日期时间函数
2016/07/03 PHP
thinkphp 验证码 的使用小结
2017/05/07 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
javascript 模拟点击广告
2010/01/02 Javascript
关于js类的定义
2011/06/28 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
基于BootStrap的前端分页带省略号和上下页效果
2017/05/18 Javascript
JavaScript基础之流程控制语句的用法
2017/08/31 Javascript
js实现纯前端压缩图片
2020/11/16 Javascript
python中异常捕获方法详解
2017/03/03 Python
python算法演练_One Rule 算法(详解)
2017/05/17 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
python批量爬取下载抖音视频
2019/06/17 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
2020/04/22 Python
Python中logging日志记录到文件及自动分割的操作代码
2020/08/05 Python
python脚本定时发送邮件
2020/12/22 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
什么是网络协议
2016/04/07 面试题
《童年》教学反思
2014/02/18 职场文书
国旗下讲话演讲稿
2014/05/08 职场文书
创优争先心得体会
2014/09/11 职场文书
2014全年工作总结
2014/11/27 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
党员年度个人总结
2015/02/14 职场文书
幼儿园中秋节活动总结
2015/03/23 职场文书
小时代观后感
2015/06/10 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
python源码剖析之PyObject详解
2021/05/18 Python
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS
golang操作rocketmq的示例代码
2022/04/06 Golang