如何在JavaScript中使用自定义事件

 我来答
爱炼金
2017-02-04 · 超过11用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:18.9万
展开全部
// 自定义事件对象
// 用于自定义事件绑定、触发、删除
var Event = {
    eventMap: {},
    addEventListener: function (eventName, handler, target, args) {
        var T = this;
        if (!T.eventMap[eventName]) {
            T.eventMap[eventName] = [];
        }
        target = target || T;
        args = args || [];
        T.eventMap[eventName].push({handler: handler, target: target, args: args});
        return T;
    },
    removeEventListener: function (eventName, handler) {
        var T = this,
            i,
            len,
            item;
        if (handler) {
            for (i = 0; i < len; i++) {
                item = T.eventMap[eventName][i];
                if (item.handler === handler) {
                    item = null;
                }
            }
        } else {
            T.eventMap[eventName] = [];
        }
        return T;
    },
    dispatch: function (eventName, e) {
        var T = this,
            i,
            len,
            item,
            map = T.eventMap[eventName];
        if (map) {
            len = map.length;
        }
        e = e || {};
        for (i = 0; i < len; i++) {
            item = map[i];
            if (item) {
                item.args.unshift(e);
                item.handler.apply(item.target, item.args);
            }
        }
    }
}

// 调用事件绑定
Event.addEventListener(name, function (e, name, callback) {});
// 触发事件
Event.dispatch(name, name);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式