MouseEvent クラスには、複数の *Target イベントがあります。
MouseEvent のコンテキストでの目的は何ですか?
これらのプロパティは、JavaScript のマウス イベントに相当します。JavaScript イベントは DOM をトラバースします (「バブリング」と呼ばれます)。target
イベントが最初にディスパッチされたオブジェクトです。currentTarget
イベント ハンドラがアタッチされているオブジェクトです。
例
次の HTML 構造があります。
<ul id="list">
<li>Entry 1</li>
<li>Entry 2</li>
</ul>
要素にクリック ハンドラーを追加します<ul>
(JavaScript または Dart のいずれかを使用して、概念は同じです)。
次に「エントリ 2」をクリックすると、クリック ハンドラが呼び出されます (イベントが「バブルアップ」するため)。要素にtarget
なりますが、要素になります。どちらを使用する必要があるかは、ハンドラーで何をしたいかによって異なります。たとえば、 を使用して「エントリ 2」自体を非表示にしたり、 を使用してリスト全体を非表示にしたりできます。<li>
currentTarget
<ul>
target
currentTarget
によって参照される要素relatedTarget
は、MouseEvent のタイプによって異なります。リストはevent.relatedTargetにあります。上記の例ではnull
、クリック イベントには関連するターゲットがないため、 になります。
関連する MDN リンク: event.currentTarget、 event.target