Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Event bubbling/capturing - where does it start/end?

I understand that an event has two modes -- bubbling and capturing.

When an event is set to bubble, does Javascript checks up to "document"?

When an event is set to capture, does Javascript always starts from "document"?

How does Javascript know where to stop/start?

Let's say I have the following code in my body tag.

<div id='outer'>
    <div id='inner'></div>
</div>

When I set an event to #inner to bubble, does Javascript check up to document or does it stop at #outer?

like image 202
Moon Avatar asked Sep 25 '12 04:09

Moon


1 Answers

From W3C Document Object Model Events

I know I'm nitpicking but it isn't javascript that handles the events you are describing, it is the DOM-engine (Document Object Model). In the browser there are bindings between the javascript and DOM engines so that events can be propagated to javascript, but it is not limited to javascript. For example MSIE has support for BASIC.

When an event is set to bubble, does Javascript checks up to "document" ?

1.2.3 "This upward propagation will continue up to and including the Document"

"Any event handler may choose to prevent further event propagation by calling the stopPropagation method of the Event interface. If any EventListener calls this method, all additional EventListeners on the current EventTarget will be triggered but bubbling will cease at that level"

When an event is set to capture, does Javascript always starts from "document"?

1.2.2 "Capture operates from the top of the tree, generally the Document,"

like image 113
some Avatar answered Nov 14 '22 23:11

some