LoginSignup
1
0

More than 3 years have passed since last update.

removeEventListenerで登録解除出来ない

Posted at

removeEventListener で登録解除したはずのコールバック関数が呼ばれてしまう事象が発生しました。
以下のようなコードとなります。

function clickedCallback() {
    console.log('click event called.');
}

// コールバック関数登録時
document.addEventListener('click', clickedCallback, true);
// 登録解除
document.removeEventListener('click', clickedCallback);

登録時に第3引数の useCapturetrue を設定した場合、解除時にも設定する必要があります。
以下のように指定することで無事解除することが出来ました。
第3引数のデフォルト値は false のようです。バブリングフェーズのコールバック関数が解除されていたようです。

// 登録解除
document.removeEventListener('click', clickedCallback, true);

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0