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 相关文章推荐
javascript学习笔记(十四) window对象使用介绍
Jun 20 Javascript
javascript函数重载解决方案分享
Feb 19 Javascript
JavaScript将字符串转换成字符编码列表的方法
Mar 19 Javascript
JS实现可调整倒计时间代码分享
Aug 18 Javascript
超详细的javascript数组方法汇总
Nov 21 Javascript
AngularJs 弹出模态框(model)
Apr 07 Javascript
Node.js Mongodb 密码特殊字符 @的解决方法
Apr 11 Javascript
Vue组件的使用教程详解
Jan 05 Javascript
JS文件中加载jquery.js的实例代码
May 05 jQuery
vue生成token并保存到本地存储中
Jul 17 Javascript
vue实现多条件和模糊搜索功能
May 28 Javascript
vue+element实现表格新增、编辑、删除功能
May 28 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在window iis的莫名问题的测试方法
2013/05/14 PHP
php calender(日历)二个版本代码示例(解决2038问题)
2013/12/24 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
php.ini中的request_order推荐设置
2015/05/10 PHP
php 使用mpdf实现指定字段配置字体样式的方法
2019/07/29 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
js判断元素是否隐藏的方法
2014/06/09 Javascript
让html页面不缓存js的实现方法
2014/10/31 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
2017/01/19 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
本地存储localStorage用法详解
2017/07/31 Javascript
js + css实现标签内容切换功能(实例讲解)
2017/10/09 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
浅谈webpack 自动刷新与解析
2018/04/09 Javascript
Python中转换角度为弧度的radians()方法
2015/05/18 Python
python使用matplotlib绘制柱状图教程
2017/02/08 Python
pandas string转dataframe的方法
2018/04/11 Python
python3监控CentOS磁盘空间脚本
2018/06/21 Python
python3解析库pyquery的深入讲解
2018/06/26 Python
浅谈Python的条件判断语句if/else语句
2019/03/21 Python
pandas分组聚合详解
2020/04/10 Python
vscode调试django项目的方法
2020/08/06 Python
Python爬虫代理池搭建的方法步骤
2020/09/28 Python
彻底弄明白CSS3的Media Queries(跨平台设计)
2010/07/27 HTML / CSS
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
音乐表演专业毕业生求职信
2013/10/14 职场文书
服装设计专业毕业生推荐信
2013/11/09 职场文书
广告创意求职信
2014/03/17 职场文书
公司年会主持词
2014/03/22 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
销售员自我评价
2015/03/11 职场文书
教师聘用意向书
2015/05/11 职场文书
三严三实·严以律己心得体会
2016/01/13 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书