Event Delegation & Event Bubbling Kya Hote Hai – What are Event Delegation & Event Bubbling

Event Bubbling Kya Hoti Hai?

JavaScript mein event bubbling ek aisa process hai jisme jab kisi nested element (jaise <button> inside <div>) par koi event trigger hota hai, toh wo event sabse pehle innermost element par handle hota hai, phir gradually parent elements tak propagate karta hai.

Matlab agar aapne button par click kiya, toh event pehle button ko milega, fir uske parent <div>, fir uske parent, aur aise hi root element tak jaata hai.

Yeh behavior browser ka default hota hai. Agar hum chahte hain ki event parent tak na jaaye, toh event.stopPropagation() method ka use karke is bubbling ko roka ja sakta hai.

Event bubbling se hume event delegation ka concept implement karne mein madad milti hai, jisme hum ek parent element ke through multiple child elements ke events handle kar sakte hain efficiently.

Deep Explanation:

Jab hum kisi HTML element jaise ki button, div, ya span par event (jaise click) karte hain, toh wo event sirf us element tak limited nahi rehta. Wo event bubble karta hai – yaani pehle jis element par click hua, wahan handle hota hai, fir uske parent element par, fir grandparent par, aur aise hi HTML DOM ke root (document) tak jaa sakta hai.

Example:

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

<!-- JS File -->
document.getElementById("child").addEventListener("click", function () {
  alert("Child button clicked");
});

document.getElementById("parent").addEventListener("click", function () {
  alert("Parent div clicked");
});

Jab aap button (child) pe click karoge:

  • Pehle child ka event listener chalega.
  • Uske baad parent ka event listener trigger hoga.

Yeh hi Event Bubbling hai → events neeche se upar propagate karte hain.

Important Point:

  • By default, JavaScript mein sabhi events bubble karte hain.
  • Agar humein bubbling rokni ho, toh hum event.stopPropagation() method use kar sakte hain.
document.getElementById("child").addEventListener("click", function (e) {
  e.stopPropagation(); // bubbling ko yahan hi rok diya
  alert("Child button clicked");
});

Event Delegation Kya Hota Hai?

Event delegation ek technique hai JavaScript mein, jisme hum ek parent element par event listener lagate hain instead of har ek child element ke upar individually listener lagane ke.

Jab child element par event trigger hota hai, to wo event bubble hoke parent tak pahuchta hai, aur parent us event ko handle karta hai.

Isse performance better hoti hai, especially jab dynamically naye elements add hote hain DOM mein. Event delegation mein hum event.target ka use karke identify karte hain ki exactly kaunsa child element par event fire hua.

Ye approach memory efficient hoti hai, kyunki hume har naye element ke saath alag se listener add nahi karna padta. Mostly click, keypress, ya mouse events ke liye event delegation ka use hota hai. Ye large applications ke liye ek smart technique hoti hai.

Deep Explanation:

Socho ki ek list hai 100 items ki (buttons, li, divs etc.). Agar hum har ek item pe alag-alag addEventListener lagayenge, toh performance kharab hogi aur code messy bhi ho jayega.

Is problem ka solution hai → Event Delegation.

Hum ek common parent element par ek hi event listener lagate hain, aur bubbling ke through ye decide karte hain ki click kis child par hua.

Example:

<!-- HTML file -->
<ul id="list">
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
</ul>

<!-- JS file -->
document.getElementById("list").addEventListener("click", function (e) {
  if (e.target.tagName === "LI") {
    alert("You clicked on " + e.target.innerText);
  }
});

Yahan kya ho raha hai:

  • Humne ul (parent) par ek hi event listener lagaya.
  • Jab kisi li (child) par click hoga, event bubble hoke ul tak aayega.
  • e.target property se hum check kar sakte hain ki kaun sa child click hua.

Faayda:

  • Code simple aur clean rahta hai.
  • Naye child elements add hone par bhi alag listener nahi lagana padta.
  • Performance better hoti hai.

Event Bubbling vs Event Delegation

Aspect Event Bubbling Event Delegation
Definition Event neeche se upar propagate karta hai Parent par event listener lagakar children ke event handle karte hain
Usage Default behavior of events Performance improve karne ke liye consciously use karte hain
Control stopPropagation() se rok sakte hain event.target ka use karke pata lagate hain ki kaun click hua
Performance Zyada impact nahi High performance jab bohot saare child elements hote hain

Quiz: Test Your Knowledge on Event Delegation & Event Bubbling

Bonus: Practical Application!

Aaj hi apne webpage mein Event Delegation aur Event Bubbling ka istemal karke dekhein!

JavaScript ke event flow ko sahi tareeke se samajhne ke liye Event Delegation aur Event Bubbling jaise concepts ka abhyas karein. Isse na sirf aapka code optimized hoga balki performance bhi behtar hogi!

Leave a Reply