ever

dom events with a node-style EventEmitter api

npm install ever
6 downloads in the last day
32 downloads in the last week
145 downloads in the last month

ever

dom events with a node-style EventEmitter api

browser support

example

view the demo

var ever = require('ever');
var box = document.querySelector('#box');

var state = false;
ever(box).on('click', function (ev) {
    ev.stopPropagation();
    state = !state;
    box.style['background-color'] = state ? 'red' : 'rgb(127,127,127)';
});

setInterval(function () {
    ever(box).emit('click');
}, 3000);

methods

var ever = require('ever')

var ev = ever(element)

Return a new EventEmitter that wraps the HTML node element.

All the usual EventEmitter methods should work with the caveat that adding and removing listeners are proxied through to the underlying dom methods, which only expect a single event object as a parameter.

ev.emit(name, opts)

Emit an event name with options opts. This method creates a synthetic event using document.createEvent() and the corresponding variant of .initEvent() that works with the event name provided.

The options opts will be passed into the matching .initEvent() function signature. Any additional properties will be added to the event object as properties being calling .dispatchEvent().

The signatures are documented in the file init.json in this distribution. To see which event name maps to which init signature, see the types.json file.

ev.on(name, cb), ev.addListener(name, cb)

Just like node's EventEmitter.prototype.on(), listen for events.

Internally this calls .addEventListener().

ev.removeListener(name, cb)

Just like node's EventEmitter.prototype.removeListener(), remove a listener.

Internally this calls .removeEventListener(), however there is no way to obtain a list of all listeners from dom nodes, so only listeners registered by the current ever() instance can be removed.

ev.removeAllListeners(name)

Just like node EventEmitter.prototype.removeAllListeners(), remove all the listeners with name or everything is name is falsy.

Unlike in node, this function calls removeListener() on each of the events to remove them so that the underlying .removeEventListener() calls get fired.

install

With npm do:

npm install ever

This module is meant for use in browsers with a node-style module system. Use browserify or similar.

license

MIT

npm loves you