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 相关文章推荐
jQuery获取地址栏参数插件(模仿C#)
Oct 26 Javascript
JQuery的attr 与 val区别
Jun 12 Javascript
jQuery如何防止Ajax重复提交
Oct 14 Javascript
详解JS-- 浮点数运算处理
Nov 28 Javascript
浅析Jquery操作select
Dec 13 Javascript
JavaScript中三种常见的排序方法
Feb 24 Javascript
详解微信第三方小程序代开发
Jun 23 Javascript
新手vue构建单页面应用实例代码
Sep 18 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
Jan 16 Javascript
JavaScript实现shuffle数组洗牌操作示例
Jan 03 Javascript
微信小程序在其他页面监听globalData中值的变化
Jul 15 Javascript
Vue router配置与使用分析讲解
Dec 24 Vue.js
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
各种战术和打法的原创者
2020/03/04 星际争霸
PHP中调用JAVA
2006/10/09 PHP
php一些公用函数的集合
2008/03/27 PHP
php 抽象类的简单应用
2011/09/06 PHP
php curl选项列表(超详细)
2013/07/01 PHP
yii插入数据库防并发的简单代码
2017/05/27 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
2007/04/12 Javascript
简单的jquery拖拽排序效果实现代码
2011/09/20 Javascript
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
2017/07/05 NodeJs
微信小程序联网请求的轮播图
2017/07/07 Javascript
react中实现搜索结果中关键词高亮显示
2018/07/31 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
Python运行的17个时新手常见错误小结
2012/08/07 Python
浅谈Python程序与C++程序的联合使用
2015/04/07 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
Python爬虫基础之XPath语法与lxml库的用法详解
2018/09/13 Python
10个Python面试常问的问题(小结)
2019/11/20 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
基于python实现简单C/S模式代码实例
2020/09/14 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
"火柴棍式"程序员面试题
2014/03/16 面试题
安全员岗位职责
2013/11/11 职场文书
采购文员岗位职责
2013/11/20 职场文书
护士自我鉴定怎么写
2014/02/07 职场文书
旅游节目策划方案
2014/05/26 职场文书
信用卡工资证明范本
2015/06/19 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书
JavaScript实现简单图片切换
2021/04/29 Javascript
css position fixed 左右双定位的实现代码
2021/04/29 HTML / CSS
pyqt5蒙版遮罩mask,setmask的使用
2021/06/11 Python
golang实现浏览器导出excel文件功能
2022/03/25 Golang