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 相关文章推荐
IE6下出现JavaScript未结束的字符串常量错误的解决方法
Nov 21 Javascript
js函数获取html中className所在的内容并去除标签
Sep 08 Javascript
使用JS读秒使用示例
Sep 21 Javascript
第六篇Bootstrap表格样式介绍
Jun 21 Javascript
AnjularJS中$scope和$rootScope的区别小结
Sep 18 Javascript
JS验证码实现代码
Sep 14 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
Oct 31 Javascript
vue.js 获取select中的value实例
Mar 01 Javascript
AngularJS ui-router刷新子页面路由的方法
Jul 23 Javascript
微信小程序云开发使用方法新手初体验
May 16 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
Aug 31 Javascript
在Vue中使用mockjs代码实例
Nov 25 Vue.js
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开发GUI
2006/10/09 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
2019/10/10 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
2019/10/23 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
使用jQuery设置disabled属性与移除disabled属性
2014/08/21 Javascript
javascript制作2048游戏
2015/03/30 Javascript
JQuery日期插件datepicker的使用方法
2016/03/03 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
2017/04/28 jQuery
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
Vue2.0权限树组件实现代码
2017/08/29 Javascript
js实现弹出框的拖拽效果实例代码详解
2019/04/16 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
详解JS预解析原理
2020/06/16 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
2019/07/04 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
Python 脚本实现淘宝准点秒杀功能
2019/11/13 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
python datetime处理时间小结
2020/04/16 Python
Python调用飞书发送消息的示例
2020/11/10 Python
CSS3属性background-size使用指南
2014/12/09 HTML / CSS
英国豪华针织品牌John Smedley的在线销售商:The Outlet by John Smedley
2018/04/08 全球购物
戴森比利时官方网站:Dyson BE
2020/10/03 全球购物
策划主管的工作职责
2013/11/24 职场文书
2015年党员创先争优公开承诺书
2015/04/27 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书