인프런 커뮤니티 질문&답변
while문으로 target 얻어오는 방법에서 질문 드립니다
작성
·
267
0
if문으로 target을 찾아서 하면 계층이 복잡해진다고 하셔서
while (!target.classList.contains('door')) {
target = parentTarget;
activate(target);
}
}
이런식으로 while문을 통해 target을 조사하는 식으로 바꿔서 해보았는데요, 문을 한 번 열면 while문이 무한루프를 돌아서 페이지가 먹통이 되어버리네요 ㅜㅜ 무엇이 문제일까요? 이 방법을 사용하려면 어떻게 해야할지 모르겠어요
답변 1
2
1분코딩
지식공유자
아래처럼 해보세요^^
function doorHandler(e) {
let targetElem = e.target;
while (!targetElem.classList.contains('door-body')) {
targetElem = targetElem.parentNode;
if (targetElem.nodeName == 'BODY') {
targetElem = null;
if (currentItem) inactivate(currentItem);
return;
}
}
if (currentItem) inactivate(currentItem);
if (targetElem.classList.contains('door-body')) {
activate(targetElem.parentNode);
}
}





감사합니다!!