메뉴 건너뛰기

관리자2018.10.24 09:00
1. e.target은 책 페이지 397, 예제 9-6, 그리고 표 9-2에 있습니다.
e.target은 현재 이벤트를 유발시킨 DOM 객체입니다. 말씀한 것과 같이 tagName은 모든 DOM 객체가 가진
프로퍼티로 항상 대문자이지요(표 8-1 참고)

2. return을 하는 이유는 window 객체에 onmouseover 리스너를 다는 문제이기 때문입니다.
span 객체에 onmouseover를 달면 굳이 span인지 비교할 필요가 없겠지만, window 객체의 모든 자식 DOM 객체들 위해 마우스가 올라가면 계속
mouseover 이벤트가 발생하기 때문에, span 객체를 구분하기 위해 아래의 조건문을 사용합니다.
if(e.target.tagName.toLowerCase() != "span")

즉 span 객체가 아니라면 바로 리턴하여 아무일도 하지 않기 위함입니다.

3. tagName이 항상 대문자로 태그이름을 가지고 있기 때문에 이를 소문자로 바꾸기 위해
e.target.tagName.toLowerCase()를 사용한 것이고 다음과 같이 비교합니다.
if(e.target.tagName.toLowerCase() != "span")
다음과 같이 해도 됩니다.
if(e.target.tagName != "SPAN")

4. 다음 코드는 좀 이상한 것 같습니다.
function (e){
if(e.target.tagName.toLowerCase() !== span) {
e.target.style.textDecoration="none";
}
}

!== 연산자는 엄격한 비교를 위한 것인데, "span"으로 해야 합니다. 그리고 "none"으로 한 것은
onmouseout의 코드로 사용해야하는데...

이상입니다.
파일 첨부

여기에 파일을 끌어 놓거나 파일 첨부 버튼을 클릭하세요.

파일 크기 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )
위로