
- Javascript Basics Tutorial
- Javascript - Home
- Javascript - Overview
- Javascript - Syntax
- Javascript - Enabling
- Javascript - Placement
- Javascript - Variables
- Javascript - Operators
- Javascript - If...Else
- Javascript - Switch Case
- Javascript - While Loop
- Javascript - For Loop
- Javascript - For...in
- Javascript - Loop Control
- Javascript - Functions
- Javascript - Events
- Javascript - Cookies
- Javascript - Page Redirect
- Javascript - Dialog Boxes
- Javascript - Void Keyword
- Javascript - Page Printing
- JavaScript Objects
- Javascript - Objects
- Javascript - Number
- Javascript - Boolean
- Javascript - Strings
- Javascript - Arrays
- Javascript - Date
- Javascript - Math
- Javascript - RegExp
- Javascript - HTML DOM
- JavaScript Advanced
- Javascript - Error Handling
- Javascript - Validations
- Javascript - Animation
- Javascript - Multimedia
- Javascript - Debugging
- Javascript - Image Map
- Javascript - Browsers
- JavaScript Useful Resources
- Javascript - Questions And Answers
- Javascript - Quick Guide
- Javascript - Functions
- Javascript - Resources
Event bubbling vs event capturing in JavaScript?
Event Bubbling − Whenever an event happens on an element, the event handlers will first run on it and then on its parent and finally all the way up to its other ancestors.
Event Capturing − It is the reverse of the event bubbling and here the event starts from the parent element and then to its child element.
Following is the code for event bubbling vs event capturing in JavaScript −
Example
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; } .result { font-size: 18px; font-weight: 500; color: blueviolet; } .outer { display: inline-block; width: 400px; height: 200px; font-size: 20px; background-color: chartreuse; } .inner { width: 200px; height: 100px; font-size: 20px; background-color: blueviolet; text-align: center; margin: 20px; } .tags { display: inline-block; width: 400px; font-weight: bold; font-size: 18px; } </style> </head> <body> <h1>Event bubbling vs event capturing</h1> <div class="outer"> OUTER <div class="inner">INNER</div> </div> <div class="outer"> OUTER <div class="inner">INNER</div> </div> <br /> <div class="tags">Bubbling</div> <div class="tags">Capturing</div> <div class="result"></div> <script> let outerDiv = document.querySelectorAll(".outer"); let innerDiv = document.querySelectorAll(".inner"); let resEle = document.querySelector(".result"); outerDiv[0].addEventListener("click", () => { resEle.innerHTML += "Outer div has been clicked" + "<br>"; }); innerDiv[0].addEventListener("click", () => { resEle.innerHTML = ""; resEle.innerHTML += "Inner div has been clicked" + "<br>"; }); outerDiv[1].addEventListener("click",() => { resEle.innerHTML = ""; resEle.innerHTML += "Outer div has been clicked" + "<br>"; },true); innerDiv[1].addEventListener("click",() => { resEle.innerHTML += "Inner div has been clicked" + "<br>"; }, true); </script> </body> </html>
Output
On clicking the inner div having the event bubbling −
On clicking the inner div having the event capturing −
- Related Articles
- What is event Bubbling and capturing in JavaScript?
- What is Event Bubbling in JavaScript?
- What is Event Capturing in JavaScript?
- How to stop the bubbling of an event to parent elements in jQuery?
- Event Firing in JavaScript
- Can I wrap a JavaScript event in a jQuery event?
- Enter key press event in JavaScript?
- What is oncontextmenu event in JavaScript?
- What is ondblclick event in JavaScript?
- What is onmousedown event in JavaScript?
- What is onmouseenter event in JavaScript?
- What is onmouseleave event in JavaScript?
- What is onmousemove event in JavaScript?
- What is onmouseover event in JavaScript?
- What is onmouseout event in JavaScript?

Advertisements