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时间下拉框小例子
Apr 15 Javascript
js模拟C#中List的简单实例
Mar 06 Javascript
在JavaScript中构建ArrayList示例代码
Sep 17 Javascript
JavaScript使用cookie实现记住账号密码功能
Apr 27 Javascript
浅谈JavaScript中小数和大整数的精度丢失
May 31 Javascript
JS添加或修改控件的样式(Class)实现方法
Oct 15 Javascript
JS中的作用域链
Mar 01 Javascript
AngularJS中filter的使用实例详解
Aug 25 Javascript
浅谈React和Redux的连接react-redux
Dec 04 Javascript
微信小程序项目实践之主页tab选项实现
Jul 18 Javascript
vue 动态表单开发方法案例详解
Dec 02 Javascript
vue如何搭建多页面多系统应用
Jun 17 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版
2006/10/09 PHP
PHP+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
PHP cron中的批处理
2008/09/16 PHP
php单例模式示例分享
2015/02/12 PHP
Ucren Virtual Desktop V2.0
2006/11/07 Javascript
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
使用js判断当前时区TimeZone是否是夏令时
2014/02/23 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
2017/09/01 Javascript
webpack项目调试以及独立打包配置文件的方法
2018/02/28 Javascript
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
jquery多级树形下拉菜单的实例代码
2019/07/09 jQuery
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
Vue Router中应用中间件的方法
2020/08/06 Javascript
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
2017/06/23 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
python实现超市商品销售管理系统
2019/10/25 Python
如何基于Python实现电子邮件的发送
2019/12/16 Python
python中p-value的实现方式
2019/12/16 Python
Boden美国官网:英伦原创时装品牌
2017/07/03 全球购物
澳大利亚宠物食品和药物在线:Jumbo Pets
2018/03/24 全球购物
linux面试题参考答案(5)
2016/11/05 面试题
地球一小时倡议书
2014/04/15 职场文书
护理见习报告范文
2014/11/03 职场文书
经典爱情感言
2015/08/03 职场文书
党务工作者主要事迹材料
2015/11/03 职场文书
详解Vue的sync修饰符
2021/05/15 Vue.js
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
Windows 11要来了?微软文档揭示Win11太阳谷 / Win10有两个不同版本
2021/11/21 数码科技