DOMのイベント・ハンドリング(メモ)

カテゴリー︎: 【JavaScript】

addEventListener

addEventListener(type, listener, useCapture)
イベントターゲットに、イベントリスナーを登録する
このメソッドに戻り値はない

removeEventListener

removeEventListener(type, listener, useCapture)
指定されたイベントリスナーを解除(削除)する
type, listener, useCaptureすべてが一致した
イベントリスナーだけを解除(削除)できる

このメソッドに戻り値はない

  <div id="box">クリックしてね</div>
  <script>
  window.onload = function() {
    var box = document.getElementById('box');

    if (box.addEventListener) {
      box.addEventListener('click', eventCatch, false);
      box.addEventListener('click', boxEffect, false);
    }
  };


  function eventCatch() {
    alert("クリックありがとう!");
    box.removeEventListener('click', eventCatch, false);
  }

  function boxEffect() {
    alert("んじゃぁ、色を変更するね!");
    box.style.color = 'red';
    box.removeEventListener('click', boxEffect, false);
  }
  </script>

このサンプルでは、

removeEventListenerメソッドに与える引数は

addEventListenerメソッドに与えた引数と

全く同じにする必要があるので

匿名(無名)関数を使うより、名前つき関数を使う方がよい

このサンプルを実行すると、2つのイベントリスナーとしてセットされた関数は

2つとも実行される

そして、これらのリスナーがイベントをとらえて、関数を実行すると

removeEventListenerメソッドによってリスナーが解除(削除)されるので

同じイベントが発生しても、二度と実行されることはない

PAGE TOP