ホームページ  >  記事  >  ウェブフロントエンド  >  return false と e.preventDefault();_javascript スキルの違い

return false と e.preventDefault();_javascript スキルの違い

WBOY
WBOYオリジナル
2016-05-16 18:23:181107ブラウズ

(タイトルにある) これら 2 つが jQuery で使用されているのを見たことがありますか?簡単な例を次に示します。

复制代码 代码如下:

$("a") .click(function() {
$("body").append($(this).attr("href"));
return false;
}

そのコードは、リンクがクリックされるたびに本文にテキストとして href 属性を追加しますが、コードの return false 部分により、ブラウザはそのリンクに対してデフォルトのアクションを実行できなくなります。次のように書くことができます:
复制代码代码如下:

$("a") .click(function(e) {
$("body").append($(this).attr("href"));
e.preventDefault();
}

それでは、何が違うのでしょうか?


違いは、return false ではさらに処理が進み、そのイベントが DOM に伝播 (または「バブルアップ」) するのを防ぐことです。これは、要素でイベントが発生すると、そのイベントがすべての親要素でもトリガーされるということです。つまり、ボックスの中にボックスがあり、両方のボックスにクリック イベントがあるとします。彼ら。内側のボックスをクリックすると、伝播を防止しない限り、外側のボックスでもクリックがトリガーされます。このように:
return false と e.preventDefault();_javascript スキルの違い
演示地址:http://css-tricks.com/examples/ReturnFalse/
つまり、
复制代码代码如下:

function() {
return false;
}

//

function(e) {
e.preventDefault(); と等しいです。
e.stopPropagation();
}

これはおそらくこれよりもはるかに複雑であり、おそらくこのような記事がすべてをよりよく説明しています。


参考:

1.「return false;」の違いおよび 「e.preventDefault();」
2.イベント順序

测试代打包下ダウンロード

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。