-1

我正在使用addEventListener将事件添加到脚本中的元素,并attachEvent在一个名为addEventHandler.

每次我调用addEventHandler函数时,它都会调用addEventListener这会降低性能,甚至使 jQuery 比我的普通 JS 更快。

有什么办法可以打addEventListener一次电话吗?目前我的代码如下所示:

addEventHandler = function (oTarget, sEventType, fnHandler) {
    if (oTarget.addEventListener) {
        oTarget.addEventListener(sEventType, fnHandler, false);
    } else if (oTarget.attachEvent) {
        oTarget.attachEvent(“on” + sEventType, fnHandler);
    } else {
        oTarget[“on” + sEventType] = fnHandler;
    }
};
4

1 回答 1

0

您可以计算一次而不是每次迭代,因为在运行时支持或缺乏实现的支持不会改变:

if (document.addEventListener) {
    addEventHandler = function (oTarget, sEventType, fnHandler) {
        oTarget.addEventListener(sEventType, fnHandler, false);
    };
} else if (document.attachEvent) {
    addEventHandler = function (oTarget, sEventType, fnHandler) {
        oTarget.attachEvent(“on” + sEventType, fnHandler);
    };
} else {
    addEventHandler = function (oTarget, sEventType, fnHandler) {
        oTarget[“on” + sEventType] = fnHandler;
    };
}
于 2013-07-14T18:54:53.203 回答