JQuery中绑定事件(bind())和移除事件(unbind())


Posted in Javascript onFebruary 27, 2015

有时候事件执行完了,想取消事件的效果可以通过一定的办法来处理。比如bind()(绑定事件)和unbind()(移除通过bind()方法添加的事件)方法来移除事件的效果。

比如下面的一个案例:

<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">Click Me</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 相关文章推荐
JQuery 风格的HTML文本转义
Jul 01 Javascript
javascript 添加和移除函数的通用方法
Oct 20 Javascript
基于jQuery的投票系统显示结果插件
Aug 12 Javascript
jQuery检测输入的字符串包含的中英文的数量
Apr 17 Javascript
JavaScript实现cookie的写入、读取、删除功能
Nov 05 Javascript
深入理解jQuery.data() 的实现方式
Nov 30 Javascript
Ionic2调用本地SQlite实例
Apr 22 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
May 17 Javascript
vue filters的使用详解
Jun 11 Javascript
JS实现的新闻列表自动滚动效果示例
Jan 30 Javascript
原生JavaScript实现五子棋游戏
Nov 09 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
Nov 18 jQuery
Jquery中Event对象属性小结
Feb 27 #Javascript
jQuery中hover方法和toggle方法使用指南
Feb 27 #Javascript
JS实现往下不断流动网页背景的方法
Feb 27 #Javascript
jQuery+easyui中的combobox实现下拉框特效
Feb 27 #Javascript
asp.net+js实现金额格式化
Feb 27 #Javascript
JavaScript检测浏览器cookie是否已经启动的方法
Feb 27 #Javascript
jQuery如何防止这种冒泡事件发生
Feb 27 #Javascript
You might like
PHP 开发工具
2006/12/06 PHP
php学习笔记 数组遍历实现代码
2011/06/09 PHP
php无限极分类实现的两种解决方法
2013/04/28 PHP
PHP执行linux命令常用函数汇总
2016/02/02 PHP
Yii使用smsto短信接口的函数demo示例
2016/07/13 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
Jquery选择器 $实现原理
2009/12/02 Javascript
跟着JQuery API学Jquery 之二 属性
2010/04/09 Javascript
JavaScript 设计模式 富有表现力的Javascript(一)
2010/05/26 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
jquery实现图片切换代码
2016/10/13 Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
2016/10/25 Javascript
javascript数组去重常用方法实例分析
2017/04/11 Javascript
jquery在vue脚手架中的使用方式示例
2017/08/29 jQuery
jQuery替换节点元素的操作方法
2018/03/18 jQuery
微信小程序画布圆形进度条显示效果
2020/11/17 Javascript
js实现简单选项卡功能
2020/03/23 Javascript
微信小程序(订阅消息)功能
2019/10/25 Javascript
js实现车辆管理系统
2020/08/26 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
Vue时间轴 vue-light-timeline的用法说明
2020/10/29 Javascript
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
Python 的内置字符串方法小结
2016/03/15 Python
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
PHP笔试题
2012/02/22 面试题
汽车专业毕业生推荐信
2013/11/12 职场文书
金融事务专业毕业生求职信
2014/02/23 职场文书
《梅兰芳学艺》教学反思
2014/02/24 职场文书
办公室卫生管理制度
2015/08/04 职场文书
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers