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 相关文章推荐
用js实现手把手教你月入万刀(转贴)
Nov 07 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
Mar 04 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
Apr 01 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
Nov 19 Javascript
JS简单实现登陆验证附效果图
Nov 19 Javascript
confirm的用法示例用于按钮操作时确定是否执行
Jun 19 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
Feb 03 Javascript
JS实现一个简单的日历
Feb 22 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
Apr 10 Javascript
详解Vue中使用Echarts的两种方式
Jul 03 Javascript
jQuery实现的淡入淡出图片轮播效果示例
Aug 29 jQuery
在Express中提供静态文件的实现方法
Oct 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 INI配置文件的解析实现分析
2011/01/04 PHP
php采用curl模仿登录人人网发布动态的方法
2014/11/07 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
2015/11/30 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
PHP实现将标点符号正则替换为空格的方法
2017/08/09 PHP
laravel中的一些简单实用功能
2018/11/03 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
2019/07/24 PHP
JavaScript实现禁止后退的方法
2006/12/27 Javascript
javascript 闭包疑问
2010/12/30 Javascript
jquery限制输入字数,并提示剩余字数实现代码
2012/12/24 Javascript
js验证输入是否为手机号码或电话号码示例
2013/12/30 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
2017/02/27 Javascript
Node.js log4js日志管理详解
2018/07/31 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
Python 常用string函数详解
2016/05/30 Python
Pandas删除数据的几种情况(小结)
2019/06/21 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
python mock测试的示例
2020/10/19 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
python Timer 类使用介绍
2020/12/28 Python
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
英国设计的甲板鞋和船鞋:Chatham
2018/12/06 全球购物
RealTek面试题
2016/06/28 面试题
int和Integer有什么区别
2013/05/25 面试题
土木工程应届生自荐信
2013/09/24 职场文书
趣味运动会活动方案
2014/02/12 职场文书
基层党建工作宣传标语
2014/06/24 职场文书
2014年社区居委会主任重阳节讲话稿
2014/09/25 职场文书
党员自我评价范文2015
2015/03/03 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python
redis实现的四种常见限流策略
2021/06/18 Redis
Pandas-DataFrame知识点汇总
2022/03/16 Python
python中的getter与setter你了解吗
2022/03/24 Python