JS之事件委托
事件委托又可以叫做事件代理,事件委托指的是将一些事件比如onclick,onmouseover,onmouseout等,把这些事件委托给别人来做,比如原来是要加在A标签上的事件,加在A的上一级DOM标签上委托给他来做。
格式:addEventListener(type,listener,useCapture)
-
type: 必须,String类型,事件类型
-
listener: 必须,函数体或者JS方法
-
useCapture: 可选,boolean类型。指定事件是否发生在捕获阶段。默认为false,事件发生在冒泡阶段
作用:
- 支持为同一个DOM元素注册多个同类型事件,即注册多个addEventListener
- 可将事件分成事件捕获和事件冒泡机制
过程:一次addEventListener分为三个阶段,捕获阶段,目标阶段,冒泡阶段。
捕获阶段:从最外层元素window开始向内执行,直到到达目标节点前的过程
目标阶段:当事件不断的传递直到目标节点的时候,最终在目标节点上触发这个事件,就是目标阶段。
冒泡阶段:事件冒泡即事件开始时,由最具体的元素接收(也就是事件发生所在的节点),然后逐级向外执行