<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>
댓글 없음:
댓글 쓰기