0

js に StimulusJS を使用しています。ユーザーが新しいページに移動したときにリスナーを削除できるようにしたいと考えています。

これまでのところ、私は自分にとって良いと思われるものを作成しました

import { Controller } from "stimulus"


export default class extends Controller {
  connect() {
    this.addListenerCloseModal()
  }

  disconnect() {
    this.removeListenerCloseModal()
  }

  addListenerCloseModal() {
    window.addEventListener('click', this.closeModal)
  }

  removeListenerCloseModal() {
    window.removeEventListener('click', this.closeModal, true)
  }

  closeModal(event) {
    var modal = document.getElementById("myModal");

    if (event.target == modal) {
      modal.style.display = "none";
    }
  }
}

しかし、問題はリスナーがまだそこにあることです。bind に関するコメントを読みましたが、このJavascript removeEventListener が機能していませんが、よくわかりません。私をバインドしているグローバル変数が必要なようですthis.closeModalが、クラスにグローバル変数を設定するにはどうすればよいですか?

4

1 に答える 1