Javascript RemoveEventListener가 작동하지 않음
Javascript의 요소에 이벤트 리스너를 추가 및 제거하려고 하면 RemoveEventListener 기능이 예상대로 작동하지 않을 수 있습니다. . 이 문제는 RemoveEventListener의 두 번째 인수로 제공된 익명 함수가 원래 addEventListener에 할당된 함수 참조와 동일하지 않을 때 발생합니다.
문제 이해
In 제공된 코드에서 이벤트 리스너는 익명 함수를 사용하여 연결 및 제거됩니다.
area.addEventListener('click', function(event) { ... }, true); area.removeEventListener('click', function(event) { ... }, true);
그러나 이러한 익명 함수는 완전히 다른 개체입니다. 동일한 작업을 수행하더라도 동일한 참조는 아닙니다.
해결책
이벤트 리스너를 올바르게 제거하려면 동일한 함수 참조를 제공해야 합니다. 리스너를 추가하는 데 사용되었습니다. addEventListener 및 RemoveEventListener 호출 외부에서 명명된 함수를 정의합니다.
function foo(event) { app.addSpot(event.clientX, event.clientY); app.addFlag = 1; } area.addEventListener('click', foo, true); area.removeEventListener('click', foo, true);
이렇게 하면 RemoveEventListener 함수는 처음에 연결된 함수 참조를 인식하고 이벤트 리스너를 성공적으로 분리합니다.
위 내용은 내 JavaScript RemoveEventListener가 작동하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!