event-object.js

Attach events to any object
git clone git://git.finwo.net/lib/event-object.js
Log | Files | Refs | README | LICENSE

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);