事件冒泡
text->div->body->document->window
事件开始时,由最具体的元素接收,然后逐级向上传播到最不具体的节点。
addEventLisener第三个参数为false
不会产生冒泡的事件:
1.load unload scroll resize blur focus mouseleave mouseenter
因为这些事件仅仅发生于自身,而他的任何父节点上的事件都不会发生,所以不会冒泡
阻止事件冒泡
1.e.stopPropagation()
2.e.cancelBubble=true
事件捕获
window->document->body->div->text
时间开始时,由最不具体的元素接收,然后逐级向下传播到最具体的节点
addEventLisener第三个参数为true
在事件流中,包括事件捕获、目标阶段、事件冒泡三个阶段
捕获阶段,事件从document到html到body后就停止了。下一阶段是处于目标阶段,于是事件在div上发生,并在事件处理中看成冒泡阶段的一部分。然后,冒泡阶段发生,事件又传播回文档。