Created

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist

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

View EventEmitter.js
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 37
/**
* 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;
};
 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.