说到事件委托,我们先了解一下什么是事件,js的事件流分为3个阶段:捕获,目标,冒泡。即发生事件,先从上到下传播(捕获),到达目标节点(目标),再往上传播(冒泡)。如下图
事件委托原理
事件委托就是基于js的事件流产生的,事件委托是利用事件冒泡,将事件加在父元素或者祖先元素上,触发该事件。
如下图
事件委托优点
1.减少事件注册,节省内存,例如
在table上代理所有td的click事件.
在ul上代理所有li的click事件.
2.简化了dom节点更新时,相应事件的更新
不用在新添加的li上绑定click事件.
当删除某个li时,不用移解绑上面的click事件.