DOM事件
DOM事件模型分为捕获和冒泡。事件发生后,会在子元素和父元素之间传播(propagation) 传播分成三个阶段:
-
捕获阶段:事件从window对象自上而下向目标节点传播的阶段;
-
目标阶段:真正的目标节点正在处理事件的阶段;
-
冒泡阶段:事件从目标节点自下而上向window对象传播的阶段。
addEventListener() 方法可以指定 “useCapture” 参数来设置传递类型:默认值为 false, 即冒泡传递,当值为 true 时, 事件使用捕获传递
在 冒泡 中,内部元素的事件会先被触发,然后再触发外部元素
在 捕获 中,外部元素的事件会先被触发,然后才会触发内部元素的事件
事件委托
由于事件会在冒泡阶段向上传播到父节点,因此可以把子节点的监听函数定义在父节点上,由父节点的监听函数统一处理多个子元素的事件。这种方法叫做事件的代理(delegation)其优点是:
- 减少内存消耗,提高性能
- 动态绑定事件