728x90
자바스크립트로 HTML 요소 추가시 기존에 등록한 addEventListener 이벤트가 정상적으로 작동하지 않는다.

 

❓상황

자바스크립트로 HTML 요소를 innerHTML로 추가시 기존에 등록한 addEventListener 이벤트가 정상적으로 작동하지 않는 상황

 

🔎 원인 파악

오류가 아니라, innerHTML로 HTML 요소를 추가하면,

형제 노드와 하위 노드에 등록된 addEventListener가 없어진다고 한다.

 

[javascript] 자손의 이벤트 리스너를 파괴하지 않고 innerHTML에 추가 할 수 있습니까? - 리뷰나라

다음 예제 코드에서는 onclick“foo”라는 텍스트가 포함 된 범위에 이벤트 핸들러를 연결합니다 . 핸들러는 alert(). 그러나 부모 노드의에 할당하면 innerHTML이 onclick이벤트 핸들러가 파괴됩니다. “

daplus.net

 

✨ 해결 방법

innerHTML 대신 HTML 요소의 append 또는 appendChild 메서드를 사용하면, addEventListener가 파괴되지 않는다.

 

복사했습니다!