UNPKG

adlayer-library

Version:

Adlayer javascript core library

80 lines (75 loc) 1.41 kB
/** * @module events */ var events = {}; /** * Implementation minimized of node Event Emitter * * @class EventEmitter * @constructor */ var EventEmitter = function(){ /** * Storage of events * * @attribute listeners * @type object * @private */ var listeners = { load:[], click:[], readyStateChange:[] }; /** * @method listeners * @param {String} event Name of event * @return {Array} */ this.listeners = function(event){ return listeners[event]; }; /** * @method addListener * @param {String} event Name of event * @param {Function} fn Eventhandler * @return {Array} */ this.addListener = function(event,fn){ if(!listeners[event]){ listeners[event] = []; } listeners[event].push(fn); return listeners[event]; }; /** * Shortcut for addListener * * @method on * @param {String} event Name of event * @param {Function} fn Eventhandler * @return {Array} */ this.on = function(event, fn){ return this.addListener(event,fn); }; /** * Trigger the event * * @method emit * @param {String} event Name of event * @return {Array} */ this.emit = function(event){ var eventListeners = listeners[event]; if(eventListeners && (eventListeners.length > 0)){ var i = 0; for(i; i < eventListeners.length; i++){ eventListeners[i].call(); } return eventListeners; } }; }; events.EventEmitter = EventEmitter; exports.events = events;