Imagine you’re the principal of a large school. Every day, students (like buttons, links, or images on a webpage) send you notes (like “clicks” or “taps”). If you tried to handle every student’s note personally, you’d be overwhelmed. Instead, you assign one teacher per class (more like a parent container) to collect notes from their students. When a note arrives, the teacher tells you, “Someone in Class 3B sent this.” You then check who it’s from and act accordingly.
This is event delegation in JavaScript!
Event delegation is a technique in JavaScript where you assign a single event listener to a parent element (like a container, list, or table) to manage interactions with multiple child elements inside it, instead of attaching listeners to each child individually.
<div>
wrapping all buttons) handles everything. Fewer listeners = better performance.2. Flexibility:
3. Simplicity:
When you click a button:
target
property.Imagine we want to have a to-do list where clicking on any task marks it as complete. We can do it without delegation or we can do it with delegation.
//Without Delegation (Messy)
// Add a listener to EVERY task (inefficient!)
document.querySelector("#task-1").addEventListener("click", markComplete);
document.querySelector("#task-2").addEventListener("click", markComplete);
// ...and so on for 100 tasks 😅
//With Delegation// ONE listener on the parent <ul>:
document.querySelector("#todo-list").addEventListener("click", function(event) {
// Check if a task (<li>) was clicked:
if (event.target.tagName === "LI") {
event.target.classList.add("complete"); // Mark it done!
}
});
event.target
to identify the clicked element.Latest tech news and coding tips.
You know that thing you do? Where you copy a chunk of code, paste it…
We've all seen them. The developers who seem to effortlessly untangle complex problems, whose code…
If you're building a social, chat, or comment-based mobile app using React Native, protecting your…
The Cross-Platform ImperativeLet's face it: building separate iOS and Android apps wastes resources. React Native…
We live in an age of infinite distraction and overwhelming ambition. Grand goals shimmer on…
Reusable components are modular UI building blocks designed for versatility. Instead of writing duplicate code…