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 相关文章推荐
js导出格式化的excel 实例方法
Jul 17 Javascript
js下拉框二级关联菜单效果代码具体实现
Aug 03 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
Sep 24 Javascript
简介JavaScript中的push()方法的使用
Jun 09 Javascript
vue的props实现子组件随父组件一起变化
Oct 27 Javascript
jquery实时获取时间的简单实例
Jan 26 Javascript
checkbox:click事件触发span元素内容改变的方法
Sep 11 Javascript
JavaScript类的继承方法小结【组合继承分析】
Jul 11 Javascript
使用JavaScript解析URL的方法示例
Mar 01 Javascript
JavaScript变量作用域及内存问题实例分析
Jun 10 Javascript
解决layui-open关闭自身窗口的问题
Sep 10 Javascript
layui table复选框禁止某几条勾选的实例
Sep 20 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下防止单引号,双引号在接受页面转义的设置方法
2008/09/25 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
2015/05/27 PHP
PHP中的数组处理函数实例总结
2016/01/09 PHP
老生常谈PHP中的数据结构:DS扩展
2017/07/17 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
在Windows上安装Node.js模块的方法
2011/09/25 Javascript
JavaScript必看小技巧(必看)
2016/06/07 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
2016/07/01 Javascript
JS触发服务器控件的单击事件(详解)
2016/08/06 Javascript
移动端点击图片放大特效PhotoSwipe.js插件实现
2016/08/25 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
Javascript实现找不同色块的游戏
2017/07/17 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
2018/09/21 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
[01:09]2014DOTA2国际邀请赛 TI4西雅图DOTA2 中国美女coser加油助威
2014/07/20 DOTA
[52:03]Secret vs VG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
Python字符串逐字符或逐词反转方法
2015/05/21 Python
python生成验证码图片代码分享
2016/01/28 Python
python使用paramiko实现远程拷贝文件的方法
2016/04/18 Python
使用Python绘制图表大全总结
2017/02/11 Python
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
2019/11/04 Python
tensorflow实现从.ckpt文件中读取任意变量
2020/05/26 Python
keras做CNN的训练误差loss的下降操作
2020/06/22 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
使用python操作lmdb对数据读取的实例
2020/12/11 Python
Python基于爬虫实现全网搜索并下载音乐
2021/02/14 Python
2015年简历自我评价范文
2015/03/11 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
Golang全局变量加锁的问题解决
2021/05/08 Golang