mediumTechnical2024

DOM event delegation target

3.4k views
01

Understand the problem

Implement the scenario utility: DOM event delegation target. Discuss edge cases, runtime performance, and alternative paradigms.

js-codingutilityalgorithm
02

Attempt it yourself

Sketch your approach before reading the solution — that's what interviews test.

Stuck? AI Nudge Available

Get a conceptual hint to guide your logic without spoiling the final implementation.

03

Study the solution

The solution is waiting

Give it an honest attempt first — then compare your thinking with the full walkthrough.

04

Read the code

Example usage
function delegate(parentEl, selector, eventType, callback) {
  if (!parentEl || typeof parentEl.addEventListener !== 'function') return () => {};
  
  const handler = function(e) {
    const match = e.target.closest(selector);
    if (match && parentEl.contains(match)) {
      callback.call(match, e);
    }
  };
  
  parentEl.addEventListener(eventType, handler);
  
  // Return unbind teardown callback to follow event-handling best practices
  return () => parentEl.removeEventListener(eventType, handler);
}

// Example placeholder (requires DOM environment)
// const cancelDelegation = delegate(document.body, '.btn-action', 'click', e => alert('Clicked!'));
05

Join the discussion

Discussion (0)

Sign in to join the discussion.

No responses yet. Be the first to share what you think.