Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
dom events with a node-style EventEmitter api
JavaScript
tree: ae38f10901

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
example
index.js
init.json
readme.markdown
types.json

readme.markdown

ever

dom events with a node-style EventEmitter api

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 eventual

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

license

MIT

Something went wrong with that request. Please try again.