事件分发器,解决UI组件之间通信问题
事件监听
on: function (event, callback, context) { if (!event || !callback) { return; } if (!this.listener[event]) { this.listener[event] = $.Callback(); } if (!this.listener[event].has(callback)) { this.listener[event].add(callback); } return this; }
发布事件
fire: function (event, options) { var defer = $.Deferred(); try { this.listener[event].fire(options); defer.resolve(); } catch (e) { defer.reject(); } return defer; }
删除事件
remove: function (event, callback) { var ev = this.listener[event]; if (!callback) { ev.empty(); return; } ev.remove(callback); return this; }