深入理解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 圆角div的实现代码
Oct 15 Javascript
js压缩工具 yuicompressor 使用教程
Mar 31 Javascript
jQuery EasyUI中对表格进行编辑的实现代码
Jun 10 Javascript
jQuery Tools tooltip使用说明
Jul 14 Javascript
jQuery获取当前对象标签名称的方法
Feb 07 Javascript
jquery单选框radio绑定click事件实现方法
Jan 14 Javascript
JavaScript+canvas实现七色板效果实例
Feb 18 Javascript
浅析$.getJSON异步请求和同步请求
Jun 06 Javascript
Vue中div contenteditable 的光标定位方法
Aug 25 Javascript
Vuex的基本概念、项目搭建以及入坑点
Nov 04 Javascript
ng-zorro-antd 入门初体验
Dec 03 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
Dec 17 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 array_pop()数组函数将数组最后一个单元弹出(出栈)
2011/07/12 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
PHP中spl_autoload_register()函数用法实例详解
2016/07/18 PHP
jquery 表格分页等操作实现代码(pagedown,pageup)
2010/04/11 Javascript
js实现的常用的左侧导航效果
2013/10/17 Javascript
jquery+easeing实现仿flash的载入动画
2015/03/10 Javascript
Angular2 自定义validators的实现方法
2017/07/05 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
2018/02/26 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
2019/04/12 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
[02:37]2015国际邀请赛选手档案—LGD.Xiao8
2015/07/28 DOTA
[01:13:46]iG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
利用Python和OpenCV库将URL转换为OpenCV格式的方法
2015/03/27 Python
对于Python的Django框架使用的一些实用建议
2015/04/03 Python
Python做简单的字符串匹配详解
2017/03/21 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
Django REST framework 视图和路由详解
2019/07/19 Python
对Python中 \r, \n, \r\n的彻底理解
2020/03/06 Python
使用Pytorch搭建模型的步骤
2020/11/16 Python
一款基于css3和jquery实现的动画显示弹出层按钮教程
2015/01/04 HTML / CSS
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
找工作求职信
2014/07/07 职场文书
火锅店的活动方案
2014/08/15 职场文书
小学校园文化建设汇报材料
2014/08/19 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
雨雪天气温馨提示
2015/07/15 职场文书
2016入党积极分子党课培训心得体会
2016/01/06 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
Android基于Fresco实现圆角和圆形图片
2022/04/01 Java/Android
分享几个实用的CSS代码块
2022/06/10 HTML / CSS