익명 이벤트 리스너 제거
JavaScript에서 이벤트 리스너는 익명 함수를 사용하여 DOM 요소에 추가되는 경우가 많습니다. 그러나 요소를 교체하지 않고 이러한 이벤트 리스너를 제거하는 것은 어려울 수 있습니다.
질문
다음과 같이 추가된 이벤트 리스너를 제거하는 방법이 있습니까?
element.addEventListener(event, function(){/* do work here */}, false);
...요소를 바꾸지 않고?
답변
아쉽게도 참조를 저장하지 않으면 익명 이벤트 리스너를 깔끔하게 제거할 수 없습니다.
해결 방법
한 가지 접근 방식은 요소 자체가 아닌 특정 개체에 이벤트 리스너를 추가하는 것입니다. 예를 들어, 모든 이벤트 리스너를 관리하는 "MyListener" 개체가 있을 수 있습니다. 그런 다음 이벤트 리스너가 더 이상 필요하지 않으면 "MyListener" 개체에서 간단히 제거하면 됩니다.
예는 다음과 같습니다.
// Create a "MyListener" object var myListener = { events: [] }; // Add an event listener to the "MyListener" object myListener.add("click", function(){/* do work here */}, false); // Remove the event listener from the "MyListener" object myListener.remove("click");
위 내용은 요소를 교체하지 않고 JavaScript에서 익명 이벤트 리스너를 제거하는 방법이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!