Logo

dev-resources.site

for different kinds of informations.

Event Propagation - Bubbling vs Capturing Explained with Examples

Published at
9/20/2024
Categories
webdev
rsmacademybd
javascript
eventpropagation
Author
RSM Academy BD
Event Propagation - Bubbling vs Capturing Explained with Examples

Event Propagation - Bubbling vs Capturing āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ¤āĻŋāĻ¤ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‡āĻ¨?

āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°ā§‹āĻĒāĻžāĻ—ā§‡āĻļāĻ¨: āĻŦā§āĻŦāĻ˛āĻŋāĻ‚ āĻŦāĻ¨āĻžāĻŽ āĻ•ā§āĻ¯āĻžāĻĒāĻšāĻžāĻ°āĻŋāĻ‚

image.png

āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°ā§‹āĻĒāĻžāĻ—ā§‡āĻļāĻ¨ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ (āĻ¯ā§‡āĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻŋāĻ•) DOM (Document Object Model) āĻāĻ° āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ›āĻĄāĻŧāĻŋāĻ¯āĻŧā§‡ āĻĒāĻĄāĻŧā§‡āĨ¤ āĻāĻŸāĻŋ āĻŽā§‚āĻ˛āĻ¤ āĻĻā§āĻ‡āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡: āĻŦā§āĻŦāĻ˛āĻŋāĻ‚ (bubbling) āĻāĻŦāĻ‚ āĻ•ā§āĻ¯āĻžāĻĒāĻšāĻžāĻ°āĻŋāĻ‚ (capturing)āĨ¤ āĻāĻ‡ āĻĻā§āĻŸāĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž DOM āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻŋāĻ‚ āĻāĻ° āĻ…āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻ…āĻ‚āĻļāĨ¤

āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°ā§‹āĻĒāĻžāĻ—ā§‡āĻļāĻ¨ āĻšāĻ˛ā§‹ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ DOM āĻŸā§āĻ°āĻŋ-āĻ¤ā§‡ parent āĻĨā§‡āĻ•ā§‡ child, child āĻĨā§‡āĻ•ā§‡ parent āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ element-āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ›āĻĄāĻŧāĻŋāĻ¯āĻŧā§‡ āĻĒāĻĄāĻŧā§‡āĨ¤ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°ā§‹āĻĒāĻžāĻ—ā§‡āĻļāĻ¨ āĻĻā§āĻ‡āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡: Event Bubbling āĻāĻŦāĻ‚ Event CapturingāĨ¤ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°ā§‹āĻĒāĻžāĻ—ā§‡āĻļāĻ¨ā§‡āĻ° āĻāĻ‡ āĻĻā§āĻŸāĻŋ āĻ§āĻžāĻĒ DOM-āĻ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸāĻ—ā§āĻ˛āĻŋ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ propagate āĻšāĻŦā§‡, āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°ā§‡āĨ¤

ā§§. āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻŦā§āĻŦāĻ˛āĻŋāĻ‚ (Event Bubbling)

āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻŦā§āĻŦāĻ˛āĻŋāĻ‚ āĻšāĻ˛ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸāĻŸāĻŋ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ‡āĻ¨āĻŋāĻļāĻŋāĻ¯āĻŧā§‡āĻŸ (āĻļā§āĻ°ā§) āĻšāĻ¯āĻŧ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ (innermost) āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻāĻŦāĻ‚ āĻ§ā§€āĻ°ā§‡ āĻ§ā§€āĻ°ā§‡ āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ›āĻĄāĻŧāĻŋāĻ¯āĻŧā§‡ āĻĒāĻĄāĻŧā§‡āĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸāĻŸāĻŋ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ¤āĻžāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻŸāĻžāĻ°ā§āĻ—ā§‡āĻŸā§‡ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ¤āĻžāĻ° āĻĒā§āĻ¯āĻžāĻ°ā§‡āĻ¨ā§āĻŸ, āĻ¤āĻžāĻ° āĻĒā§āĻ¯āĻžāĻ°ā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻĒā§āĻ¯āĻžāĻ°ā§‡āĻ¨ā§āĻŸ, āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻĨāĻžāĻ•ā§‡ āĻ¯āĻ¤āĻ•ā§āĻˇāĻŖ āĻ¨āĻž āĻĒā§āĻ°ā§‹ DOM āĻāĻ° āĻŸāĻĒ-āĻ˛ā§‡āĻ­ā§‡āĻ˛ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒā§ŒāĻāĻ›āĻžāĻ¯āĻŧāĨ¤

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:

<div id="parent">
    <div id="child">
        <button id="button">Click Me!</button>
    </div>
</div>

āĻāĻ‡ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡, āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ button āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ā§‡ āĻ•ā§āĻ˛āĻŋāĻ• āĻ•āĻ°ā§‡āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸāĻŸāĻŋ āĻĒā§āĻ°āĻĨāĻŽā§‡ button āĻ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻšāĻŦā§‡, āĻ¤āĻžāĻ°āĻĒāĻ° child āĻ, āĻāĻŦāĻ‚ āĻļā§‡āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ parent āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ā§‡ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻšāĻŦā§‡āĨ¤ āĻāĻŸāĻŋ āĻŦā§āĻŦāĻ˛āĻŋāĻ‚āĨ¤

ā§¨. āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻ•ā§āĻ¯āĻžāĻĒāĻšāĻžāĻ°āĻŋāĻ‚ (Event Capturing)

āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻ•ā§āĻ¯āĻžāĻĒāĻšāĻžāĻ°āĻŋāĻ‚ āĻšāĻ˛ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸāĻŸāĻŋ āĻĒā§āĻ°āĻĨāĻŽā§‡ DOM āĻāĻ° āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ§ā§€āĻ°ā§‡ āĻ§ā§€āĻ°ā§‡ āĻ¨āĻŋāĻšā§‡āĻ° āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° (innermost) āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸāĻŸāĻŋ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ¤āĻžāĻ° āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻĒā§āĻ¯āĻžāĻ°ā§‡āĻ¨ā§āĻŸā§‡ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ§ā§€āĻ°ā§‡ āĻ§ā§€āĻ°ā§‡ āĻ¤āĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻŸāĻžāĻ°ā§āĻ—ā§‡āĻŸā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ†āĻ¸ā§‡āĨ¤

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:

<div id="parent">
    <div id="child">
        <button id="button">Click Me!</button>
    </div>
</div>

āĻāĻ‡ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡, āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ button āĻ āĻ•ā§āĻ˛āĻŋāĻ• āĻ•āĻ°ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ•ā§āĻ¯āĻžāĻĒāĻšāĻžāĻ°āĻŋāĻ‚ āĻĢā§‡āĻœā§‡ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸāĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄā§‡āĻ˛ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸāĻŸāĻŋ āĻĒā§āĻ°āĻĨāĻŽā§‡ parent āĻ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻšāĻŦā§‡, āĻ¤āĻžāĻ°āĻĒāĻ° child āĻ, āĻāĻŦāĻ‚ āĻļā§‡āĻˇā§‡ button āĻāĨ¤

ā§Š. āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°ā§‹āĻĒāĻžāĻ—ā§‡āĻļāĻ¨ā§‡āĻ° āĻ§āĻžāĻĒāĻ¸āĻŽā§‚āĻš

āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°ā§‹āĻĒāĻžāĻ—ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¤āĻŋāĻ¨āĻŸāĻŋ āĻ§āĻžāĻĒā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡:

  • āĻ•ā§āĻ¯āĻžāĻĒāĻšāĻžāĻ°āĻŋāĻ‚ āĻĢā§‡āĻœ (Capturing Phase): āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸāĻŸāĻŋ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ°ā§āĻŸ āĻĨā§‡āĻ•ā§‡ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻŸāĻžāĻ°ā§āĻ—ā§‡āĻŸ āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤
  • āĻŸāĻžāĻ°ā§āĻ—ā§‡āĻŸ āĻĢā§‡āĻœ (Target Phase): āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸāĻŸāĻŋ āĻ¤āĻžāĻ° āĻŸāĻžāĻ°ā§āĻ—ā§‡āĻŸ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ā§‡ āĻĒā§ŒāĻāĻ›ā§‡ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
  • āĻŦā§āĻŦāĻ˛āĻŋāĻ‚ āĻĢā§‡āĻœ (Bubbling Phase): āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸāĻŸāĻŋ āĻ¤āĻžāĻ° āĻŸāĻžāĻ°ā§āĻ—ā§‡āĻŸ āĻĨā§‡āĻ•ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡ āĻ†āĻŦāĻžāĻ° āĻ‰āĻĒāĻ°ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ“āĻ ā§‡, DOM āĻāĻ° āĻ°ā§āĻŸ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒā§ŒāĻāĻ›āĻžāĻ¯āĻŧāĨ¤

ā§Ē. āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻŋāĻ‚ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡

āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¯ā§‡ āĻāĻŸāĻŋ āĻ•ā§āĻ¯āĻžāĻĒāĻšāĻžāĻ°āĻŋāĻ‚ āĻĢā§‡āĻœā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡ āĻ•āĻŋāĻ¨āĻžāĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ addEventListener āĻŽā§‡āĻĨāĻĄā§‡āĻ° āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ true āĻĒāĻžāĻ¸ āĻ•āĻ°ā§‡āĻ¨, āĻ¤āĻŦā§‡ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸāĻŸāĻŋ āĻ•ā§āĻ¯āĻžāĻĒāĻšāĻžāĻ°āĻŋāĻ‚ āĻĢā§‡āĻœā§‡ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄā§‡āĻ˛ āĻšāĻŦā§‡āĨ¤ āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ, āĻāĻŸāĻŋ āĻŦā§āĻŦāĻ˛āĻŋāĻ‚ āĻĢā§‡āĻœā§‡ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄā§‡āĻ˛ āĻšāĻŦā§‡āĨ¤

document.getElementById("parent").addEventListener("click", function() {
    console.log("Parent clicked");
}, true); // Capturing Phase

document.getElementById("child").addEventListener("click", function() {
    console.log("Child clicked");
}, false); // Bubbling Phase

document.getElementById("button").addEventListener("click", function() {
    console.log("Button clicked");
}); // Default: Bubbling Phase

ā§Ģ. āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°ā§‹āĻĒāĻžāĻ—ā§‡āĻļāĻ¨ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°āĻž

āĻ•āĻŋāĻ›ā§ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻšāĻ¯āĻŧāĻ¤ā§‹ āĻšāĻžāĻ¨ āĻ¯ā§‡ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸāĻŸāĻŋ āĻ¤āĻžāĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĢā§‡āĻœ āĻĨā§‡āĻ•ā§‡ āĻ†āĻ° āĻ‰āĻĒāĻ°ā§‡āĻ° āĻŦāĻž āĻ¨āĻŋāĻšā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ¨āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ†āĻĒāĻ¨āĻŋ stopPropagation() āĻŽā§‡āĻĨāĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻ‡ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ:

document.getElementById("button").addEventListener("click", function(event) {
    event.stopPropagation(); // Prevents further propagation
    console.log("Button clicked, propagation stopped");
});

ā§Ŧ. āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻ“ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°

  • āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻŦā§āĻŦāĻ˛āĻŋāĻ‚ āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻ¯ā§‹āĻ—ā§€āĨ¤
  • āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻ•ā§āĻ¯āĻžāĻĒāĻšāĻžāĻ°āĻŋāĻ‚ āĻ•āĻŋāĻ›ā§ āĻŦāĻŋāĻļā§‡āĻˇ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§‡ āĻ•āĻžāĻœā§‡ āĻ†āĻ¸ā§‡, āĻ¯ā§‡āĻŽāĻ¨ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻšāĻžāĻ¨ āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻ°ā§‡āĻ¨ā§āĻŸ āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻ†āĻ—ā§‡ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄā§‡āĻ˛ āĻšā§‹āĻ•āĨ¤

ā§­. Event Bubbling āĻŦāĻ¨āĻžāĻŽ Event Capturing: āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯

āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ Event Bubbling Event Capturing
āĻĒā§āĻ°ā§‹āĻĒāĻžāĻ—ā§‡āĻļāĻ¨ā§‡āĻ° āĻĻāĻŋāĻ• Target element āĻĨā§‡āĻ•ā§‡ āĻ‰āĻĒāĻ°ā§‡āĻ° āĻĻāĻŋāĻ•ā§‡, āĻ…āĻ°ā§āĻĨāĻžā§Ž parent elements-āĻāĻ° āĻĻāĻŋāĻ•ā§‡ Root element āĻĨā§‡āĻ•ā§‡ āĻ¨āĻŋāĻšā§‡āĻ° āĻĻāĻŋāĻ•ā§‡, āĻ…āĻ°ā§āĻĨāĻžā§Ž child elements-āĻāĻ° āĻĻāĻŋāĻ•ā§‡
Default Behavior Default behavior āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ bubbling; āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻ•ā§āĻ¯āĻžāĻĒāĻšāĻžāĻ°āĻŋāĻ‚ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻ˛āĻžāĻĻāĻžāĻ­āĻžāĻŦā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻšā§Ÿ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ capturing āĻšāĻ˛ā§‹ non-default behavior, āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ addEventListener-āĻāĻ° āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° true āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ
āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻĒā§āĻ°āĻ­āĻžāĻŦ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻŸāĻžāĻ°ā§āĻ—ā§‡āĻŸ element āĻĨā§‡āĻ•ā§‡ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻāĻ°āĻĒāĻ° parent elements āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒā§ŒāĻāĻ›ā§‡ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ root āĻĨā§‡āĻ•ā§‡ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ target element āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒā§ŒāĻāĻ›ā§‡
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ• āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ…āĻ¨ā§‡āĻ• āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ bubbling āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ•āĻŋāĻ›ā§ āĻŦāĻŋāĻļā§‡āĻˇ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ capturing āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ¯ā§‡āĻŽāĻ¨ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ bubbling behavior āĻ•ā§‡ bypass āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯

image.png

āĻ‰āĻĒāĻ¸āĻ‚āĻšāĻžāĻ°

āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°ā§‹āĻĒāĻžāĻ—ā§‡āĻļāĻ¨ āĻšāĻ˛ā§‹ āĻāĻ•āĻŸāĻŋ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻ§āĻžāĻ°āĻŖāĻž āĻ¯āĻž DOM āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ bubbling āĻāĻŦāĻ‚ capturing āĻāĻ‡ āĻĒā§āĻ°ā§‹āĻĒāĻžāĻ—ā§‡āĻļāĻ¨ā§‡āĻ° āĻĻā§āĻ‡āĻŸāĻŋ āĻ§āĻžāĻĒ, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸāĻŸāĻŋ DOM āĻŸā§āĻ°āĻŋ-āĻ¤ā§‡ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ›āĻĄāĻŧāĻžāĻŦā§‡ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ­āĻžāĻŦā§‡ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ bubbling āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ capturing āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ propagation āĻĨāĻžāĻŽāĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ stopPropagation() āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ…āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻĒā§āĻ°āĻ­āĻžāĻŦ āĻ°ā§‹āĻ§ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻāĻ‡ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻœāĻŸāĻŋāĻ˛ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ā§‡āĻ° āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻŽā§‡āĻ¨ā§āĻŸā§‡ āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻĻā§‡āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ•ā§‹āĻĄāĻ•ā§‡ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻ“ āĻ¸ā§āĻ¸āĻ‚āĻ—āĻ āĻŋāĻ¤ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻ•āĻ°ā§‡āĨ¤

Featured ones: