npm.io
3.2.0 • Published 8 years ago

delegate

Licence
MIT
Version
3.2.0
Deps
0
Vulns
0
Weekly
0
Stars
186

delegate

Lightweight event delegation.

Install

You can get it on npm.

npm install delegate --save

If you're not into package management, just download a ZIP file.

Setup

Node (Browserify)
var delegate = require('delegate');
Browser (Standalone)
<script src="dist/delegate.js"></script>

Usage

Add event delegation
With the default base (document)
delegate('.btn', 'click', function(e) {
    console.log(e.delegateTarget);
}, false);
With an element as base
delegate(document.body, '.btn', 'click', function(e) {
    console.log(e.delegateTarget);
}, false);
With a selector (of existing elements) as base
delegate('.container', '.btn', 'click', function(e) {
    console.log(e.delegateTarget);
}, false);
With an array/array-like of elements as base
delegate(document.querySelectorAll('.container'), '.btn', 'click', function(e) {
    console.log(e.delegateTarget);
}, false);
Remove event delegation
With a single base element (default or specified)
var delegation = delegate(document.body, '.btn', 'click', function(e) {
    console.log(e.delegateTarget);
}, false);

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.

var delegations = delegate('.container', '.btn', 'click', function(e) {
    console.log(e.delegateTarget);
}, false);

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

Browser Support

Chrome logo Edge logo Firefox logo Internet Explorer logo Opera logo Safari logo
Latest Latest Latest 9+ Latest Latest

License

MIT License Zeno Rocha

Keywords