カテゴリー︎: 【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メソッドによってリスナーが解除(削除)されるので
同じイベントが発生しても、二度と実行されることはない