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 无限级联菜单案例分享
Mar 26 Javascript
JavaScript中的onerror事件概述及使用
Apr 01 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
Oct 17 Javascript
jQuery中map函数的两种方式
Apr 07 jQuery
Vue中引入样式文件的方法
Aug 18 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
Jan 16 Javascript
vue实现点击当前标签高亮效果【推荐】
Jun 22 Javascript
Vue表情输入组件 微信face表情组件
Feb 11 Javascript
vue实现抖音时间转盘
Sep 08 Javascript
基于Vue的商品主图放大镜方案详解
Sep 19 Javascript
Electron整合React使用搭建开发环境的步骤详解
Jun 07 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
Aug 07 Javascript
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中用foreach来操作数组的代码
2011/07/17 PHP
深入解析php之apc
2013/05/15 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
php mysql like 实现多关键词搜索的方法
2016/10/29 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
2019/04/15 PHP
语义化 H1 标签
2008/01/14 Javascript
js 遍历json返回的map内容示例代码
2013/10/29 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
2014/12/08 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
2015/03/02 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
Vue数组更新及过滤排序功能
2017/08/10 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
ajax前台后台跨域请求处理方式
2018/02/08 Javascript
vue自动化路由的实现代码
2019/09/30 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
jQuery实现日历效果
2020/09/11 jQuery
Python遍历目录中的所有文件的方法
2016/07/08 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
python脚本当作Linux中的服务启动实现方法
2019/06/28 Python
PyQt Qt Designer工具的布局管理详解
2019/08/07 Python
python实现文字版扫雷
2020/04/24 Python
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
农救科工作职责
2013/11/27 职场文书
应用心理学个人求职信范文
2013/12/11 职场文书
会计出纳员的自我评价
2014/01/15 职场文书
文秘档案管理岗位职责
2014/03/06 职场文书
商业房地产广告语
2014/03/13 职场文书
房地产广告策划方案
2014/05/15 职场文书
PHP中->和=>的意思
2021/03/31 PHP
openstack中的rpc远程调用的方法
2021/07/09 Python
详解Python内置模块Collections
2022/03/22 Python
分析SQL窗口函数之排名窗口函数
2022/04/21 Oracle