mako-event-emitter
v0.0.0
Published
browserify module for emitting/registering to custom events in the browser
Downloads
7
Readme
##API
###EventEmitter.prototype.on(type, fn)
type
string - message typefn
function - handler to add
Add a handler for a message type
EventEmitter.prototype.on = function (type, fn, ctx) {
var wrapped;
ctx = ctx || this;
wrapped = function () {
fn.apply(ctx, Array.prototype.slice.call(arguments, 0));
};
fn.wrapped = wrapped;
if(!this.listeners[type]) {
this.listeners[type] = [wrapped];
}
else {
this.listeners[type].push(wrapped);
}
};
###EventEmitter.prototype.once(type, fn)
type
string - message typefn
function - handler to add
Add a handler for a message type which removes itself after a single execution
EventEmitter.prototype.once = function (type, fn, ctx) {
var wrapped;
ctx = ctx || this;
wrapped = function () {
ctx.off(type, fn);
fn.apply(ctx, Array.prototype.slice(arguments, 0));
};
fn.wrapped = wrapped;
if(!this.listeners[type]) {
this.listeners[type] = [wrapped];
}
else {
this.listeners[type].push(wrapped);
}
};
###EventEmitter.prototype.off(type, fn)
type
string - message typefn
function - handler to remove
Remove a handler for a message type
EventEmitter.prototype.off = function (type, fn) {
var index, index2;
if(this.listeners[type]) {
index = this.listeners[type].indexOf(fn);
index2 = this.listeners[type].indexOf(fn.wrapped);
if(index > -1) {
this.listeners[type].splice(index, 1);
return true;
}
else if(index2 > -1) {
this.listeners[type].splice(index2, 1);
return true;
}
else {
return false;
}
}
else {
return false;
}
};
###EventEmitter.prototype.emit(type, payload)
type
string - the type of event to emitpayload
...(object,number,string) - Any additional arguments will be sent to the handlers for this event
Triggers an event of a specific type, with any additional payload passed.
EventEmitter.prototype.emit = function (type) {
var payload = Array.prototype.slice.call(arguments, 1),
fns = this.listeners[type] || [],
i;
for(i=0; i<fns.length; i++) {
fns[i](payload);
}
};
module.exports = EventEmitter;
},{}]},{},[1])