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:
targetproperty.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.
Most image upload systems assume one thing: the user has a stable internet connection. That assumption…
Imagine a user submits a form while their internet connection suddenly disappears. Normally, the request…
Cybercriminals don't always announce their presence. Many compromises are designed to remain unnoticed for weeks…
For years, jQuery was everywhere. If you were building websites in the 2010s, there was a…
Few things halt a developer’s flow faster than seeing the dreaded word: CONFLICT. A Git merge…
Spring Boot is one of the most popular frameworks for building REST APIs in Java.…