Skip to content

fregante/delegate-it

Repository files navigation

delegate-it Build Status

Lightweight event delegation

Install

npm install delegate-it

Setup

const delegate = require('delegate-it');
import delegate from 'delegate-it';

Usage

Add event delegation

With the default base (document)

delegate('.btn', 'click', event => {
    console.log(event.delegateTarget);
});

With an element as base

delegate(document.body, '.btn', 'click', event => {
    console.log(event.delegateTarget);
});

With a selector (of existing elements) as base

delegate('.container', '.btn', 'click', event => {
    console.log(event.delegateTarget);
});

With an array/array-like of elements as base

delegate(document.querySelectorAll('.container'), '.btn', 'click', event => {
    console.log(event.delegateTarget);
});

Remove event delegation

With a single base element (default or specified)

const delegation = delegate(document.body, '.btn', 'click', event => {
    console.log(event.delegateTarget);
});

delegation.destroy();

With multiple elements (via selector or array)

Note: selectors are always treated as multiple elements, even if one or none are matched. delegate() will return an array.

const delegations = delegate('.container', '.btn', 'click', event => {
    console.log(event.delegateTarget);
});

delegations.forEach(function (delegation) {
    delegation.destroy();
});

Browser Support

Chrome logo Edge logo Firefox logo Internet Explorer logo Opera logo Safari logo
Latest ✔ Latest ✔ Latest ✔ No ✕ Latest ✔ Latest ✔