ホームページ >ウェブフロントエンド >jsチュートリアル >HTML で子要素から親要素へのイベントの伝播を防ぐ方法

HTML で子要素から親要素へのイベントの伝播を防ぐ方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-05 04:12:09265ブラウズ

How to Prevent Event Propagation from Child to Parent Elements in HTML?

インライン Onclick イベント リスナーによるイベント伝播の防止

HTML では、インライン イベント リスナーを使用して、要素のタグ内にイベント処理を直接追加できます。ただし、子要素のイベントが親要素のイベントをトリガーすべきでない状況に遭遇することがあります。

問題:

次のコードを考えてみましょう:

<div onclick="alert('you clicked the header')" class="header">
  <span onclick="alert('you clicked inside the header');">something inside the header</span>
</div>

このスニペットでは、ユーザーがスパンをクリックすると、スパンのクリック イベントと div のクリック イベントの両方が発生します。

解決策:

スパンから div へのイベントの伝播を停止するには、event.stopPropagation() メソッドを使用できます。

<span onclick="event.stopPropagation(); alert('you clicked inside the header');">something inside the header</span>

event.stopPropagation() を呼び出すことで、イベントが親要素にバブルアップするのを防ぎ、効果的に要素を分離します。

IE の代替:

event.stopPropagation() をサポートしていない古いバージョンの Internet Explorer の場合は、ウィンドウを使用できます。 .event.cancelBubble = true:

<span onclick="window.event.cancelBubble = true; alert('you clicked inside the header');">something inside the header</span>

このメソッドは、明示的にキャンセルすることで同じ結果を達成します。イベントの伝播。

以上がHTML で子要素から親要素へのイベントの伝播を防ぐ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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