UNPKG

@jjwesterkamp/event-delegation

Version:

Event delegation for browser DOM events. Flexible, cross-browser compatible and Typescript-focused.

29 lines (28 loc) 1.51 kB
import { createBuilder } from './lib/createBuilder'; import { createCompositeBuilder } from './lib/createCompositeBuilder'; import { isString } from './lib/assertions'; import { normalizeRoot } from './lib/normalizeRoot'; var EventDelegation = { // ---------------------------------------------------------------------------------------- // Create a global delegated event listener. // ---------------------------------------------------------------------------------------- global: function () { return createBuilder(document.body); }, // ---------------------------------------------------------------------------------------- // Create one delegated event listener for a specified root element. // ---------------------------------------------------------------------------------------- within: function (rootOrSelector) { return createBuilder(normalizeRoot(rootOrSelector)); }, // ---------------------------------------------------------------------------------------- // Create many delegated event listeners for multiple specified root elements. // ---------------------------------------------------------------------------------------- withinMany: function (rootsOrSelector) { var roots = isString(rootsOrSelector) ? Array.from(document.querySelectorAll(rootsOrSelector)) : rootsOrSelector; return createCompositeBuilder(roots.map(createBuilder)); }, }; export default EventDelegation;