对jQuery中on方法委托事件的理解
2015-05-16 16:21
423 查看
关于on方法中的委托事件,官方JQ API如下:
http://api.jquery.com/on/#on-events-selector-data-handler
参考大牛阮一峰的博文:
http://www.ruanyifeng.com/blog/2011/08/jquery_best_practices.html
什么时候使用委托事件:
1.对未被创建的元素添加事件监听
2.避免频繁添加或删除event handler,委托父元素来进行事件处理
使用委托事件的优点:
1.大量减少监听元素的开销
使用实例
对于on的第二个参数,官方API的解释是:对触发事件元素的后代元素的过滤
个人理解:
过滤之后,this变成tr,事件冒泡到tbody,然后对tr进行操作。
其实on的底层是用了addEventListener,所谓的委托,其实就是借用事件冒泡机制,而且可以指定event.target和event.currentTarget(==this)来指定哪个事件对象
本文出自 “Rocker” 博客,请务必保留此出处http://rocker.blog.51cto.com/6314218/1651898
http://api.jquery.com/on/#on-events-selector-data-handler
参考大牛阮一峰的博文:
http://www.ruanyifeng.com/blog/2011/08/jquery_best_practices.html
什么时候使用委托事件:
1.对未被创建的元素添加事件监听
2.避免频繁添加或删除event handler,委托父元素来进行事件处理
使用委托事件的优点:
1.大量减少监听元素的开销
使用实例
$( "#dataTable tbody" ).on( "click", "tr", function() { console.log( $( this ).text() ); });使用后果,不用每个tr都进行事件绑定,只需要在tbody处进行绑定即可,委托tbody进行对tr点击的响应。
对于on的第二个参数,官方API的解释是:对触发事件元素的后代元素的过滤
个人理解:
过滤之后,this变成tr,事件冒泡到tbody,然后对tr进行操作。
其实on的底层是用了addEventListener,所谓的委托,其实就是借用事件冒泡机制,而且可以指定event.target和event.currentTarget(==this)来指定哪个事件对象
本文出自 “Rocker” 博客,请务必保留此出处http://rocker.blog.51cto.com/6314218/1651898
相关文章推荐
- javascript事件委托理解,jQuery .on()方法一步到位实现事件委托
- 深入理解jquery新的绑定事件机制on方法的使用
- jQuery的on()方法的两种用法(委托给父元素进行事件监听代理)
- 深入理解jquery新的绑定事件机制on方法的使用(推荐)
- 浅谈jQuery代码优化之事件委托(事件绑定)——bind()|live()|delegate()|on()|off()|one()方法
- jQuery的事件委托方法on、live、delegate之间有什么区别?
- 使用 jquery 事件委托的 on 方法
- jQuery事件绑定方法bind、 live、delegate和on的区别
- 阻止事件冒泡和围绕.on()方法 [.selector]事件委托中冒泡情况的探讨
- jquery事件委托的回调函数中调用全局变量的简单方法
- jquery事件委托的回调函数中调用全局变量的简单方法
- 原生js事件委托与简单的jquery事件委托方法
- jQuery的事件处理方法介绍 - bind(),live(),delegate(),on()
- 首先是点击事件在不同的布局层次中传递的。 理解Down事件再哪个层次被消费(拦截),后续的Move、Up的点击事件如何传递。 其中ViewGroup中onInterceptTouchEvent方法
- 事件委托--on()方法
- 关于jquery的事件委托-bind,live,delegate,on的区别发展
- jquery的on、off、one、bind、delegate、live、die绑定事件方法研究
- jQuery高级事件---on、off、one和事件委托
- jquery live() delegate() on() 事件委托的一些区别
- BIND?LIVE?DELEGATE?还是ON?–JQUERY事件绑定方法研究