以下 jquery 对象方法中,使用了事件委托的是
jQuery中实现事件委托的三种方法:
$.delegate: 基本用法:$('.parent').delegate('a', 'click', function () { console.log('click event on tag a'); }),同上,并且还有相对应的$.delegate来删除***的事件;
$.live: 基本使用方法:$('a', $('.parent')).live('click', function () { console.log('click event on tag a'); }),同上,然而如果没有传入父层元素$(.parent),那事件会默认委托到$(document)上;(已废除)
事件委托原理:
事件委托是通过事件冒泡的原理,利用父级去触发子级的事件。
如果不用事件委托,将ul下每一个li都去添加click事件监听,非常麻烦,而且对于内存消耗是非常大的,效率上需要消耗很多性能;
另外就是如果通过js动态创建的子节点,需要重新绑定事件。
而利用事件委托的话,只需要给父级绑定一个事件监听,即可让每个li都绑定上相应的事件,让你避免对特定的每个节点添加事件***;事件***是被添加到它们的父元素上。事件***会分析从子元素冒泡上来的事件,找到是哪个子元素的事件。
更多内容——JavaScript事件委托详解