dual-emitter

EventEmitter done right and no dependencies. For nodejs and the browser (>= IE8). Can emit custom or DOM events.
Install
npm i dual-emitter --save
npm test
Features
- minimal, yet simple to use
- just 4kb minified - no jQuery, no dependencies
- works on the browser (even IE8), use dist/dual-emitter.min.js
- works on the server, just install it and
require
it - can emit (trigger or whatever you call it) DOM events manually
- have
.on
,.off
,.once
and.emit
methods
Usage
For more use-cases see the tests
var DualEmitter = var emitter = { console} emitter
API
DualEmitter
Create a new instance of
DualEmitter
.
[events]
{Object} Initialize with default events.
Example
var DualEmitter = var emitter =
.on
Add/bind event listener to custom or DOM event. Notice that
this
in event handler function vary - it can be the DOM element or DualEmitter instance.
<name>
{String} event name<fn>
{Function} event handler[el]
{Object} optional DOM elementreturns
{DualEmitter} DualEmitter for chaining
Example
{ console //=> hi 123 bar} { console} var element = documentbody emitteremitter
.off
Remove/unbind event listener of custom or DOM event.
<name>
{String} event name<fn>
{Function} event handler[el]
{Object} optional DOM elementreturns
{DualEmitter} DualEmitter for chaining
Example
var element = documentbodyemitteremitter
.once
Add one-time event listener to custom or DOM event. Notice that
this
in event handler function vary - it can be the DOM element or DualEmitter instance.
<name>
{String} event name<fn>
{Function} event handler[el]
{Object} optional DOM elementreturns
{DualEmitter} DualEmitter for chaining
Example
emitter var element = documentbodyemitter
.emit
Emit/execute some type of event listener. You also can emit DOM events if last argument is the DOM element that have attached event listener.
<name>
{String} event name[args...]
{Mixed} context to pass to event listeners[el]
{Object} optional DOM elementreturns
{DualEmitter} DualEmitter for chaining
Example
var i = 0 emitter // or even emit DOM events, but you should// give the element as last argument to `.emit` methodvar element = documentbodyvar clicks = 0 emitter
._isDom
Check that given
val
is DOM element. Used internally.
val
{Mixed}returns
{Boolean}
Example
var element = documentbody emitter //=> trueemitter //=> false
._hasOwn
Check that
key
exists in the givenobj
.
obj
{Object}key
{String}returns
{Boolean}
Example
var obj = a: 'b' emitter //=> trueemitter //=> false
.extend
Static method for inheriting both the prototype and static methods of the
DualEmitter
class.
Ctor
{Function} The constructor to extend.
Example
{ DualEmitter}DualEmitter // Optionally pass another object to extend onto `MyApp` { DualEmitter Foo}DualEmitter
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
But before doing anything, please read the CONTRIBUTING.md guidelines.