>  기사  >  웹 프론트엔드  >  요소를 교체하지 않고 익명 이벤트 리스너를 제거하는 방법은 무엇입니까?

요소를 교체하지 않고 익명 이벤트 리스너를 제거하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-18 16:44:29844검색

How to Remove Anonymous Event Listeners Without Replacing Elements?

요소 교체 없이 이벤트 리스너 제거

JavaScript에서 addEventListener 메소드를 사용하여 추가된 익명 이벤트 리스너는 원본에 대한 지식 없이는 직접 제거할 수 없습니다. 함수 참조.

변수에 할당:

한 가지 해결 방법은 익명 함수를 이벤트 리스너에 추가하기 전에 변수에 할당하는 것입니다.

<code class="js">const myEventHandler = function() {
  // Your code here
};

element.addEventListener(event, myEventHandler, false);</code>

그런 다음 변수에 대한 참조를 제거하여 이벤트 리스너를 제거할 수 있습니다.

<code class="js">element.removeEventListener(event, myEventHandler);</code>

객체에 저장:

또 다른 접근 방식은 저장하는 것입니다. 기본 객체 내의 객체에 있는 익명 이벤트 핸들러:

<code class="js">mainObject.eventHandlers = {
  [event]: function() {
    // Your code here
  }
};

element.addEventListener(event, mainObject.eventHandlers[event], false);</code>

객체를 반복하고 적절한 속성을 제거하여 이벤트 리스너를 제거할 수 있습니다:

<code class="js">for (const event in mainObject.eventHandlers) {
  element.removeEventListener(event, mainObject.eventHandlers[event]);
}</code>

참고 : 이벤트 핸들러를 제거하면 나중에 이벤트 핸들러가 트리거되는 것만 방지된다는 점을 기억하는 것이 중요합니다. 이미 발생한 모든 이벤트는 계속해서 해당 핸들러를 실행합니다.

위 내용은 요소를 교체하지 않고 익명 이벤트 리스너를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.