ホームページ >ウェブフロントエンド >jsチュートリアル >インライン onclick ハンドラーを使用して、ネストされた要素でのイベントの伝播を防ぐにはどうすればよいですか?

インライン onclick ハンドラーを使用して、ネストされた要素でのイベントの伝播を防ぐにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-06 01:00:12170ブラウズ

How Can I Prevent Event Propagation in Nested Elements with Inline onclick Handlers?

インライン Onclick 属性によるイベント伝播の防止

複数の要素が相互にネストされており、独自の onclick イベント ハンドラーがある場合、次のことが可能です。イベントを DOM 階層の上に伝播し、親要素のハンドラーをトリガーします。この動作は場合によっては望ましい場合もありますが、他の場合にはこの伝播を防ぐ必要がある場合もあります。

例:

次のコード スニペットを考えてみましょう:

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

ユーザーがスパンをクリックすると、スパンの onclick イベント ハンドラーと div の onclick の両方がトリガーされますイベントハンドラ。 div へのイベントの伝播を防ぐには、次のいずれかの方法を使用できます。

1. event.stopPropagation()

このメソッドは、イベントが DOM ツリーの上に伝播するのを停止します。

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

2. window.event.cancelBubble (IE の場合)

Internet Explorer の場合、同等のメソッドは window.event.cancelBubble.

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

以上がインライン onclick ハンドラーを使用して、ネストされた要素でのイベントの伝播を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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