-1

と呼ばれる関数で IE にaddEventListenerフォールバックして、スクリプトの要素にイベントを追加するために使用しています。attachEventaddEventHandler

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

実装のサポートまたはサポートの欠如は実行時に変更されないため、反復ごとではなく1 回計算することができます。

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 に答える