JavaScript رویدادها JS Events

Event Delegation (تفویض رویداد)

به‌جای نصب listener روی تک‌تک عناصر، یک listener روی والد می‌گذارید و هدف واقعی را با closest پیدا می‌کنید. برای لیست‌های پویا سریع‌تر و سبک‌تر است.

سینتکس

parent.addEventListener('click', e => e.target.closest(sel))

مثال کاربردی

document.querySelector("#todos").addEventListener("click", (e) => {
  const li = e.target.closest("li");
  if (!li) return;
  li.classList.toggle("done");
});