1. 事件流的三个阶段
-
捕获: 从外向内
-
执行目标阶段
-
冒泡: 从内向外
2. 事件委托
-
什么是事件委托
-
将子元素的事件委托(绑定)给父元素
-
-
事件委托的好处
-
减少绑定的次数
-
后期新添加的元素也可以享用之前委托的事件
-
-
事件委托的原理
-
冒泡
-
-
触发事件的是谁
-
子元素
-
-
如何找到触发事件的对象
-
event.target
-
-
currentTarget VS target
-
currentTarget要求绑定事件的元素一定是触发事件的元素
-
target绑定事件的元素不一定是触发事件的元素
-
-
target 和currentTarget 都是对一个触发事件的对象的引用. 不同之处在于:
1,target 是对触发事件的对象的引用 (简称就是事件源,就是那个真实DOM本身)
2,currentTarget 当事件遍历DOM时,标识事件的当前目标。它总是引用事件处理程序附加到的元素(事件绑定的元素,不一定是那个真实DOM,因为会冒泡)
3,target在事件流的目标阶段;(指元素本身)
4,currentTarget在事件流的捕获,目标及冒泡阶段。只有当事件流处在目标阶段的时候,两个的指向才是一样的 (这里就是说:只有是事件元素元素自身触发,指向才会是一样的)
# 因为会冒泡所以这个事件不一定是元素自身触发的
5,而当处于捕获和冒泡阶段的时候,target指向被单击的对象而currentTarget指向当前事件活动的对象(一般为父级)。(这里就是由于会冒泡就导致了指向会不一样)
注:参考原文:https://zhuanlan.zhihu.com/p/33906656