基于jquery的事件订阅/分发demo

来源:互联网 发布:男装比较好的淘宝店铺 编辑:程序博客网 时间:2024/05/16 00:31

事件分发器,解决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;}
0 0
原创粉丝点击