Event delegation places a single event listener on a parent element to handle events from present and future child elements via event bubbling.
js
container.addEventListener("click", (e) => {
const btn = e.target.closest("button[data-action]");
if (btn) handleAction(btn.dataset.action);
});