Skip to content
JavaScript

イベント委譲

イベントバブリングでイベント委譲を実装。

#event#DOM#performance

Code

javascript
function delegate(parent, selector, type, handler) {
  parent.addEventListener(type, function (e) {
    const target = e.target.closest(selector);
    if (target && parent.contains(target)) {
      handler.call(target, e);
    }
  });
}

// Usage
delegate(document.body, ".btn", "click", e => {
  console.log("clicked:", e.currentTarget);
});