<
html
>
<
style
type
=
"text/css"
>
.hide{display:none}
#menu{
padding-left:0;
}
#menu li{
float:left;
margin-left:20px;
}
#canvas{
clear:both;
}
</
style
>
<
body
>
<
ul
id
=
"menu"
>
<
li
><
a
id
=
"gogh"
href
=
"#tab1"
>고흐</
a
></
li
>
<
li
><
a
id
=
"gaudi"
href
=
"#tab2"
>가우디</
a
></
li
>
<
li
><
a
id
=
"albrecht"
href
=
"#tab3"
>알브레히트 뒤러</
a
></
li
>
</
ul
>
<
div
id
=
"canvas"
>
<
div
id
=
"gogh_img"
>
</
div
>
<
div
class
=
"hide"
id
=
"gaudi_img"
>
</
div
>
<
div
class
=
"hide"
id
=
"albrecht_img"
>
</
div
>
</
div
>
<
script
type
=
"text/javascript"
>
<!-- 크로스 브라우징을 위해서...브라우져마다 이벤트 받는 객체가 다름 -->
function addEvent(el, eType, fn, uC) {
if (el.addEventListener) { <!-- 파폭, 크롬..-->
el.addEventListener(eType, fn, uC);
return true;
} else if (el.attachEvent) { <!-- 익스플로러 -->
return el.attachEvent('on' + eType, fn);
} else {
el['on' + eType] = fn;
}
}
function clickHandler(e){ <!--브라우져가 이 함수로 이벤트를 받음-->
var id = e.target.id; <!--이벤트 타겟의 아이디를 받음-->
<!--해당 id의 엘리먼트를 지칭-->
var t = document.getElementById(e.target.id+'_img');
var p = document.getElementById('canvas');
<!--줄바꿈을 포함한 하위엘리먼트의 숫자-->
for(var i = 0 ; i <
p.childNodes.length
; i ++){
var
c
=
p
.childNodes[i];
if(c.nodeName == 'DIV'){ <!--DIV 태그라면 class=hide -->
c.setAttribute('class', 'hide');
}
}
t.setAttribute('class', ''); <!-- 클릭했던 타겟만 hide 안 함-->
}
addEvent(document.getElementById('gogh'), 'click', clickHandler)
addEvent(document.getElementById('gaudi'), 'click', clickHandler)
addEvent(document.getElementById('albrecht'), 'click', clickHandler)
</script>
</
body
>
</
html
>
댓글 없음:
댓글 쓰기