stopPropagation 関数を使用して JavaScript_javascript スキルでイベントの伝播を停止する例

WBOY
リリース: 2016-05-16 16:38:26
オリジナル
1640 人が閲覧しました

JS のイベントはデフォルトでバブリングし、層ごとに上向きに伝播します。 stopPropagation() 関数を使用して、DOM 階層内のイベントの伝播を停止できます。次の例のように:

HTML コード:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>stopPropagation()使用 - 琼台博客</title>
</head>
<body>
<button>button</button>
</body>
</html>
[/code] 
没有加stopPropagation()
[code]
var button = document.getElementsByTagName('button')[0];
button.onclick=function(event){
  alert('button click');
};
 
document.body.onclick=function(event){
  alert('body click');
}
ログイン後にコピー

DOMはレイヤーごとに上に伝播していくので、ボタンボタンをクリックするとボディレイヤーにも伝播し、ボディレイヤーのクリックにも反応します。その結果、ボタンと本体という 2 つの警告ボックスが表示されます。

stopPropagation() を追加しました

var button = document.getElementsByTagName('button')[0];
button.onclick=function(event){
  alert('button click');
  // 停止DOM事件层次传播
  event.stopPropagation();
};
 
document.body.onclick=function(event){
  alert('body click');
}
ログイン後にコピー

ボタンのクリックイベント処理関数ではstopPropagation()を使用してイベント伝播機能を停止しているため、ボタンクリックイベントからの警告ボックスがポップアップした後は本体に伝播できず、本体の警告ボックスも停止します。再度ポップアップすることはなく、その結果、警告ボックスは 1 回だけ表示されます。

多くの子供たちが JS を書くとき、DOM イベントが層ごとに上向きに伝播するという特徴を無視して、プログラムの異常を引き起こすことがよくあります。さらに詳しい知識が必要な場合は、JS イベントのバブリングに関する情報を検索してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!