Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Browse files


  • Loading branch information...
commit ae38f1090100616d74c8187bf1a80322c2b769ac 1 parent 7a53668
@substack authored
Showing with 77 additions and 2 deletions.
  1. +77 −2 readme.markdown
79 readme.markdown
@@ -1,11 +1,83 @@
-# dome
+# ever
-[dom events]( with a node-style api
+[dom events](
+with a node-style
# example
+[view the demo](
+``` js
+var ever = require('ever');
+var box = document.querySelector('#box');
+var state = false;
+ever(box).on('click', function (ev) {
+ ev.stopPropagation();
+ state = !state;
+['background-color'] = state ? 'red' : 'rgb(127,127,127)';
+setInterval(function () {
+ ever(box).emit('click');
+}, 3000);
# methods
+``` js
+var ever = require('ever')
+## var ev = ever(element)
+Return a new
+that wraps the HTML node `element`.
+All the usual
+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:
@@ -14,6 +86,9 @@ 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

0 comments on commit ae38f10

Please sign in to comment.
Something went wrong with that request. Please try again.