jQuery事件绑定.on()简要概述及应用


Posted in Javascript onFebruary 07, 2013

前几天在看《jquery基础教程》,看到事件委托的时候,关于live()方法讲的不是很详细,就去搜了一下关于live()和delegate()的。

然后在一处看到live()已经被移除了,?澹?缓笕タ戳俗钚碌?q源码,果然被移除了,现在是1.9.1版本,不知道live()是在之前哪个版本被移除的,惭愧啊,之前都没留意。

看源码发现bind()和delegate()都是由on()实现的。on()的描述如下:

.on( events [, selector ] [, data ], handler(eventObject) )

一个简单的事件绑定如 $('button').on('click',function(){}); 与bind()无二样。

在需要为较多的元素绑定事件的时候,优先考虑事件委托,可以带来性能上的好处。比如:

jQuery事件绑定.on()简要概述及应用   jQuery事件绑定.on()简要概述及应用

如上图,将click事件绑定在document对象上,页面上任何元素发生的click事件都冒泡到document对象上得到处理。

注意到.on()的描述中第二个可选参数:selector。如下图,添加了第二个参数,选择符button:

jQuery事件绑定.on()简要概述及应用
结果:jQuery事件绑定.on()简要概述及应用

当事件冒泡到document对象时,检测事件的target,如果与传入的选择符(这里是button)匹配,就触发事件,否则不触发。

注意.on()也可以接收一个对象参数,该对象的属性是事件类型,属性值为事件处理函数。下面是官方文档的一个例子:

jQuery事件绑定.on()简要概述及应用

最后有一点,原先的live()方法,处理函数是默认绑定在document对象上不能变的,如果DOM嵌套结构很深,事件冒泡通过大量祖先元素会导致较大的性能损失。而使用.on()方法,事件只会绑定到$()函数的选择符表达式匹配的元素上(上面我的例子中,为了简单绑定到了document),因此可以精确地定位到页面中的一部分,而事件冒泡的开销也可以减少。delegate()与on()同理,毕竟是用on()实现的:

jQuery事件绑定.on()简要概述及应用

Javascript 相关文章推荐
JavaScript中的无阻塞加载性能优化方案
Oct 10 Javascript
14个有用的Jquery技巧分享
Jan 08 Javascript
js创建对象的方式总结
Jan 10 Javascript
jquery实现鼠标滑过小图时显示大图的方法
Jan 14 Javascript
JavaScript针对网页节点的增删改查用法实例
Feb 02 Javascript
javascript通过元素id和name直接取得元素的方法
Apr 28 Javascript
下一代Bootstrap的5个特点 超酷炫!
Jun 17 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
Feb 27 Javascript
js实现动态显示时间效果
Mar 06 Javascript
微信小程序如何获取用户头像和昵称
Sep 23 Javascript
使用vue实现HTML页面生成图片的方法
Mar 12 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
Dec 04 Javascript
10个基于浏览器的JavaScript调试工具分享
Feb 07 #Javascript
利用JQuery动画制作滑动菜单项效果实现步骤及代码
Feb 07 #Javascript
jquery 选择器引擎sizzle浅析
Feb 06 #Javascript
extjs3 combobox取value和text案例详解
Feb 06 #Javascript
js汉字转拼音实现代码
Feb 06 #Javascript
jquery解决图片路径不存在执行替换路径
Feb 06 #Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
Feb 06 #Javascript
You might like
php imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
2015/12/25 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
web前端开发也需要日志
2010/12/09 Javascript
SOSO地图API使用(一)在地图上画圆实现思路与代码
2013/01/15 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
js确认框confirm()用法实例详解
2016/01/07 Javascript
jquery zTree异步加载简单实例讲解
2016/02/25 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
Node.js中多进程模块Cluster的介绍与使用
2017/05/27 Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
2017/11/09 Javascript
基于JavaScript实现幸运抽奖页面
2020/07/05 Javascript
vue-cli项目无法用本机IP访问的解决方法
2018/09/20 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
python3 打开外部程序及关闭的示例
2018/11/06 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
Pytorch .pth权重文件的使用解析
2020/02/14 Python
python和go语言的区别是什么
2020/07/20 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
土木工程毕业生推荐信
2013/10/28 职场文书
行政助理工作职责范本
2014/03/04 职场文书
低碳日宣传活动总结
2014/07/09 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
县委党的群众路线教育实践活动工作情况报告
2014/10/25 职场文书
区域销售大会开幕词
2016/03/04 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫