public
Created

Event Emitter With jQuery 1.7's $.Callbacks()

  • Download Gist
EventEmitter.js
JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
/**
* EventEmitter with jQuery 1.7's $.Callbacks().
*/
 
function EventEmitter() {
this.topics = {};
}
 
/**
* Listen on the given `topic` event with `fn`.
*
* @param {String} topic
* @param {Function} fn
* @param {Mixed} ... options for $.Callbacks handling
*/
 
EventEmitter.prototype.on = function(topic, fn){
(this.topics[topic] = this.topics[topic] || $.Callbacks(Array.prototype.slice.call(arguments,2)))
.add(fn);
return this;
};
 
/**
* Emit `topic` event with the given args.
*
* @param {String} topic
* @param {Mixed} ...
*/
 
EventEmitter.prototype.emit = function(topic){
var args = Array.prototype.slice.call(arguments, 1)
, callbacks = this.topics[topic];
callbacks.fire(args);
 
return this;
};

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.