강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

페이커님의 프로필 이미지
페이커

작성한 질문수

인터랙티브 웹 개발 제대로 시작하기

3개의 문 5

while문으로 target 얻어오는 방법에서 질문 드립니다

작성

·

267

0

if문으로 target을 찾아서 하면 계층이 복잡해진다고 하셔서 

        while (!target.classList.contains('door')) {

          target = parentTarget;
          activate(target);
        }

      } 

이런식으로 while문을 통해 target을 조사하는 식으로 바꿔서 해보았는데요, 문을 한 번 열면 while문이 무한루프를 돌아서 페이지가 먹통이 되어버리네요 ㅜㅜ 무엇이 문제일까요? 이 방법을 사용하려면 어떻게 해야할지 모르겠어요

답변 1

2

1분코딩님의 프로필 이미지
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);
	}
}
페이커님의 프로필 이미지
페이커
질문자

감사합니다!!

페이커님의 프로필 이미지
페이커

작성한 질문수

질문하기