DOM

EventTarget インターフェイス

  編集:2022.11.11 by T.A.

[Edge]。→

EventTarget は DOM インターフェイスで、イベントを受け取ることや、リスナーを持つことができるオブジェクトが実装しています。

イベント ターゲット: ElementDocumentWindow。他に XMLHttpRequestAudioNodeAudioContext など。

イベント ターゲットにイベント ハンドラーを設定するのに onイベント名 プロパティや、スクリプトを使用することもできます。

コンストラクター
new EventTarget()
新しい EventTarget オブジェクトのインスタンスを作成します。
メソッド
EventTarget.addEventListener(type,listener[,options])
EventTarget.addEventListener(type,listener[,useCapture])
EventTarget に指定のイベントが起こるたびに指定の関数処理(イベント リスナー)をさせるように組み込みます。
EventTarget.removeEventListener(type,listener[,options])
EventTarget.removeEventListener(type,listener[,useCapture])
EventTarget から、以前に EventTarget.addEventListener() で登録されたイベント リスナーを削除します。
EventTarget.dispatchEvent(event)
EventTarget で指定のイベント起動させます。

onイベント名

EventTarget.onイベント名=イベントハンドラー
イベント名 イベント名を記述する。clickfocusmousemoveresize、…。
イベントハンドラー 関数名、または関数を記述する。

HTML:

<SPAN id=IdTest>SPAN要素</SPAN>

JavaScript:

function Job(eve){  //click イベントの処理: 得られる引数は 1 つで、イベント オブジェクトが入ります。トが入る。
  D=eve;  //…
  E=eve.target;  //イベントが起きた要素の取得。
  alert(E.tagName);
}
IdTest.onclick=Job;  //click イベントの割り当て。

JavaScript: 他の方法: 関数式の利用:

IdTest.onclick=function(eve){  //click イベントの処理: 得られる引数は 1 つで、イベント オブジェクトが入ります。
  D=eve;  //…
  E=eve.target;  //イベントが起きた要素の取得。
  alert(E.tagName);
}

JavaScript: 他の方法: アロー関数式を使用:

IdTest.onclick= eve=>{  //click イベントの処理: 得られる引数は 1 つで、イベント オブジェクトが入ります。
  D=eve;  //…
  A=eve.target;  //イベントが起きた要素の取得。
  alert(E.tagName);
}

EventTarget.addEventListener():

HTML:

<SPAN id=IdTest>SPAN要素</SPAN>

JavaScript:

function Job(eve){  //click イベントの処理: 得られる引数は 1 つで、イベント オブジェクトが入ります。
  D=eve;  //…
  A=eve.target;  //イベントが起きた要素の取得。
  alert(E.tagName);
}
IdTest.addEventListener('click', Job);  //click イベントの割り当て。

JavaScript: 他の方法: 関数式の利用:

IdTest.addEventListener('click', function(eve){  //click イベントの割り当てと処理:
  D=eve;  //…
  A=eve.target;  //イベントが起きた要素の取得。
  alert(E.tagName);
});

JavaScript: 他の方法: アロー関数式を使用:

IdTest.addEventListener('click', eve=>{  //click イベントの割り当てと処理:
  D=eve;  //…
  A=eve.target;  //イベントが起きた要素の取得。
  alert(E.tagName);
});

addEventListener() では同じイベントでも複数のイベントリスナーを割り当てられます。つまり、

function Job1(eve){  //click イベントの処理1:
  
}
function Job2(eve){  //click イベントの処理2:
  
}
IdTest.addEventListener('click', Job1);  //click イベントの割り当て。
IdTest.addEventListener('click', Job2);  //click イベントの割り当て。

そして特定のイベントリスナーを削除する:

IdTest.removeEventListener('click', Job1);  //

関数式、アロー関数式利用の場合はイベントリスナーの削除は不明。…成功していない。


テスト