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 EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
Oct 06 Javascript
jQuery+css实现图片滚动效果(附源码)
Mar 18 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
Dec 08 Javascript
JavaScript ParseFloat()方法
Dec 18 Javascript
详解百度百科目录导航树小插件
Jan 08 Javascript
javascript history对象详解
Feb 09 Javascript
mui上拉加载功能实例详解
Apr 13 Javascript
JavaScript制作简单的框选图表
May 15 Javascript
jquery 一键复制到剪切板的实例
Sep 20 jQuery
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
May 16 Javascript
vue-cli配置flexible过程详解
Jul 04 Javascript
JavaScript文档加载模式以及元素获取
Jul 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
DOTA2 探索永无止境 玩家自创强悍插眼攻略
2020/04/20 DOTA
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
php中设置多级目录session的问题
2011/08/08 PHP
基于PHP常用字符串的总结(待续)
2013/06/07 PHP
php实现批量下载百度云盘文件例子分享
2014/04/10 PHP
php内存缓存实现方法
2015/01/24 PHP
深入理解PHP类的自动载入机制
2016/09/16 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
看了就知道什么是JSON
2007/12/09 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
jQuery实现带滚动线条导航效果的方法
2015/01/30 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
js 性能优化之算法和流程控制
2017/02/15 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
Python中使用hashlib模块处理算法的教程
2015/04/28 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
基于python的ini配置文件操作工具类
2019/04/24 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
2019/06/21 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
python读写文件write和flush的实现方式
2020/02/21 Python
python 读txt文件,按‘,’分割每行数据操作
2020/07/05 Python
Pycharm导入anaconda环境的教程图解
2020/07/31 Python
施华洛世奇加拿大官网:SWAROVSKI加拿大
2018/06/03 全球购物
九一八事变纪念日演讲稿
2014/09/14 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
骆驼祥子读书笔记
2015/06/26 职场文书
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技
python读取mat文件生成h5文件的实现
2022/07/15 Python