Home>Article>Web Front-end> Detailed explanation of the three stages of DOM event flow
When an event occurs, it will be propagated among element nodes in aspecific order. This propagation process isDOM event stream.
DOM event flow is divided into three stages, namely:
Capture phase:The stage in which events are propagated from top to bottom from the Document node to the target node;
Target phase:The real target node is processing the event;
Bubbling Stage:The stage in which events are propagated from the target node to the Document node from top to bottom.
Capture phase:
Document son盒子
The console output is:
It can be seen that the capture phase events are propagated from the Document node to the target node from top to bottom.
Bubble stage:
The console output is:
It can be seen that the bubbling phase events are propagated from the target node to the Document node from top to bottom.
Note:
1. JS code can only execute one of the capturing or bubbling stages (either capturing Either bubbling)
2, onclick and attachEvent (ie) can only get the bubbling stage
3, addEventListener(type, listener [, useCapture]) If the third parameter istrue, it means calling the event handler in theevent capture phase; if it isfalse(do not writeThe default is false), which means that the event handler is called during theevent bubbling stage
4. In actual development, we rarely use event capture. Pay more attention to event bubbling
5. Some events do not bubble, such as onblur, onfocus, onmouseenter, onmouseleave
6. Events The bubbling sometimes causes trouble, but it can be stopped. The method is:stopPropagation()
stopPropagation() method: Termination events are propagated further during the capture, target processing, or bubbling phases of the propagation process. After calling this method, the handler for the event on that node will be called and the event will no longer be dispatched to other nodes.
This article comes from thejs tutorialcolumn, welcome to learn!
The above is the detailed content of Detailed explanation of the three stages of DOM event flow. For more information, please follow other related articles on the PHP Chinese website!