event-object.js (952B)
1 (function(exports) { 2 3 exports.eventObject = function(sourceObject) { 4 var listeners = {}; 5 sourceObject = sourceObject || {}; 6 sourceObject.trigger = function(name, data) { 7 data = data || true; 8 if( listeners[name] ) { 9 listeners[name].forEach(function(callback) { 10 data = data && callback.call(null, data); 11 }); 12 } 13 return data; 14 }; 15 sourceObject.on = function(name, callback) { 16 if(name.forEach) { 17 name.forEach(function(currentName) { 18 sourceObject.on(currentName, callback); 19 }); 20 return sourceObject; 21 } 22 listeners[name] = listeners[name] || []; 23 listeners[name].push(callback); 24 return sourceObject; 25 }; 26 return sourceObject; 27 }; 28 29 if(typeof define == 'function' && define.amd) { 30 define('event-object', function() { 31 return exports.eventObject; 32 }) 33 } 34 35 })(typeof exports === 'object' ? exports : this);