2

このコード (この投稿Error: 'null' is null or not an objectから取得) を使用すると、IE8 でエラー メッセージ ( ) が表示されなくなりましたpreventDefault()

$(document).ready(function () {
    $("#submitBtn").on("click", pD(event));
});

function pD(e) {
    e = event || window.event;
    if (e.preventDefault) {
        e.preventDefault();
    } else {
        e.returnValue = false;
    }
}

うまくいくようです。ただし、この投稿のコメント(4 番目のコメントダウン) は、これが悪い方法ではないかと懸念しています。それは受け入れられるものですか、それとも何らかの形で受け入れられないものですか? コメントの言葉はかなり強いので、不思議に思います。

4

1 に答える 1

10

まず、クリック ハンドラーを割り当てる方法が正しくありません。

$("#submitBtn").on("click", pD(event));

関数を呼び出しpD()その戻り値を.on()メソッドに渡しています。関数への参照を渡すだけです。

$("#submitBtn").on("click", pD);

次に、jQuery を使用しているため、jQuery がこれらの互換性の問題を処理eするため、引数をテストして設定する必要はありません。jQueryがそれを実現するだけであることを知ってwindow.event使用できます。e.preventDefault()

于 2013-05-28T20:28:35.037 に答える