event.preventDefault() と return false の比較 質問する

event.preventDefault() と return false の比較 質問する

特定のイベントが発生した後に他のイベント ハンドラーが実行されないようにしたい場合、2 つのテクニックのいずれかを使用できます。例では jQuery を使用しますが、これはプレーン JS にも適用されます。

1.event.preventDefault()

$('a').click(function (e) {
    // custom handling here
    e.preventDefault();
});

2.return false

$('a').click(function () {
    // custom handling here
    return false;
});

イベント伝播を停止するこれら 2 つの方法には大きな違いがありますか?

私にとっては、return false;メソッドを実行するよりもシンプルで短く、おそらくエラーも起こりにくいでしょう。メソッドを使用する場合は、大文字と小文字の区別や括弧などを正しく覚えておく必要があります。

また、メソッドを呼び出すには、コールバックの最初のパラメータを定義する必要があります。おそらく、このようにせずにpreventDefault代わりに を使用する必要がある理由がいくつかあるのでしょうか? より良い方法は何でしょうか?

ベストアンサー1

return falsejQueryイベントハンドラ内から を呼び出すことは、渡された引数に対してe.preventDefaultとの両方を呼び出すのと実質的に同じです。e.stopPropagationjQuery.Event オブジェクト。

e.preventDefault()デフォルトのイベントの発生を防ぎ、e.stopPropagation()イベントのバブルアップを防ぎ、return falseその両方を実行します。この動作は通常の(jQuery 以外の) イベント ハンドラーとは異なり、特にイベントのバブルアップは停止return falseないことに注意してください。

ソース:ジョン・レシグ

href クリックをキャンセルするために、「return false」ではなく event.preventDefault() を使用する利点はありますか?

おすすめ記事