20201027_TIL
by Haebin Seo
오늘 한 일
- facebookClone 작성 중
event.currentTarget.parentNode.~~~
로 진행되는 코드에서 null 값의 parentNode를 참조할 수 없다는 에러가 발생하는 문제가 있었다. 확인을 위해 event를 console.log()로 찍어봐도 event.currentTarget의 값은 null이었는데, event.target은 정상적으로 값을 가지고 있어서 뭐가 문제인지 몰라 벙쪘었었다. 구글링 끝에 생각한 문제의 원인은 다음과 같다.- 현재 click event listener가 두개가 걸려있다. 하나는 탭 영역이 아닌 곳을 클릭할 때 탭이 닫히는 것, 다른 하나는 이번에 새로 작성한 버튼을 클릭할 시에 Ajax 처리를 해주는 것이다.
- event bubbling으로 전파되면서 event.currentTarget은 계속 변화한다.
- 핸들러 내부의 event.currentTarget.parentNode.~~ 코드가 실행될 때 이미 버블링 끝에 event.currentTarget에 null 값이 할당되었다.
따라서 핸들러 첫 줄에 currentTarget을 새 변수에 할당해 사용하자 정상적으로 작동하는 것을 확인할 수 있었다.
const currentTarget = event.currentTarget;
Subscribe via RSS