¸øÄ³Ð©ÇøÓòµÄÔªËØ»òÅúÁ¿µÄÔªËØÌí¼Óʼþ£¬Ò»°ãÇé¿öÏÂÎÒÃÇͨ¹ýÑ»·À´ÊµÏÖ£ºÏÈÕÒµ½ËùÓжÔÓ¦µÄÔªËØ£¬ÔÙ¸øËüÃÇÌí¼ÓÏàÓ¦µÄʼþ¡£
Èç¹ûѧϰһЩW3Cʼþ´¦ÀíģʽµÄ֪ʶ£¬¿ÉÒÔÕÒµ½ÁíÒ»ÖÖʵÏֵķ½·¨:ÀûÓÃʼþÕìÌý²ÎÊýe¡£
ÔÚ
W3Cʼþ´¦ÀíģʽÖУºËùÓÐͨ¹ýaddEvent¸ø½ÚµãÔªËØÌí¼ÓµÄʼþ´¦ÀíÆ÷¶¼»á
¸ø¶ÔÓ¦µÄʼþÕìÌýº¯Êý´«»ØÒ»¸ö°üº¬e²ÎÊýµÄ¶ÔÏó£¬ÔÚä¯ÀÀÆ÷ÖÐÎÒÃÇ¿ÉÒÔÀûÓÃe.target£¨±ê×¼£©e.srcElement£¨IE£©À´
È¡µÃʼþµÄÄ¿±êÔªËØ¡£
Ò»µ©´ËÔªËØµÄʼþ´¦ÀíÆ÷±»¼¤»î£¬
´ËÔªËØµÄ¸¸ÔªËصÄËùÓÐʼþ´¦ÀíÆ÷Ò²»á±»¼¤»î£¬¼´Ã°ÅÝ£¬¿ÉÒÔͨ¹ýstopPropagation»òcancelBubbleÀ´È¡ÏûðÅÝ¡£
ÏÂÃæÊÇÀûÓôËÔÀí¶ÔFAQʵÀýÖØÐÂдµÄ´úÂë¡£
Javascript²¿·Ö£º
<script type="text/javascript">
<!--
window.onload = function(){
var obj = document.getElementById("faq");
if (!obj) return false;
obj.onclick = function(e){//
´«µÝʼþÕìÌý²ÎÊýe
var e = e || window.event;//
È¡µÃʼþÕìÌý²ÎÊýe
var tg = e.target || e.srcElement; //
È¡µÃʼþµÄÄ¿±êÔªËØ
if(tg.tagName=="H3"){//È¡µÃÄ¿±ê¶ÔÏ󣺱êÌâ
tg.className = tg.className == ""?"on":"";//ÉèÖñêÌâÑùʽ
var tp = tg.parentNode.lastChild;//È¡µÃÕâ¸ö±êÌâÏà¶ÔÓ¦µÄÕýÎÄÄÚÈÝ£¨´ËÓï¾ä´æÓÐ
bug£ºÔÚff2ÖÐhtmlµÄ¸¸±êÇ©liÓë×Ó±êÇ©h3,pÖ®¼äÓпոñ»ò»ØÐÐʱ£©
tp.style.display = tp.style.display == "none"?"block":"none";//ÏÔʾ»òÒþ²ØÕýÎÄ
}
if (window.event){//ÅжÏÊÇ·ñIE
window.event.cancelBubble = true;//
IE È¡ÏûðÅÝ£¨µã»÷³¬Á´½Óʱ²»´¥Æä¸¸ÔªËصÄʼþ£©
//window.event.returnValue = false;//IE È¡ÏûĬÈÏÐÐΪ
}
else{
e.stopPropagation();//
È¡ÏûðÅÝ
//e.preventDefault();//È¡ÏûĬÈÏÐÐΪ
}
}
}
//-->
</script>
Html²¿·Ö£º
<ul id="faq">
<li><h3>headline<a href="http://www.baidu.com" target="_blank">search</a></h3>
<p>paragraph paragraph paragraph</p></li>
<li><h3>headline</h3>
<p>paragraph paragraph paragraph</p></li>
<li><h3>headline</h3>
<p>paragraph paragraph paragraph</p></li>
</ul>
Css²¿·Ö£º
<style type="text/css" media="screen">
<!--
#faq{list-style:none;margin:0;padding:0;}
#faq h3{background:#ccc;margin:10px 0 0;padding:3px;font:14px/1.5em arial;border-top:2px solid #369;}
#faq h3.on{background:#ddd;}
#faq h3 a{float: right;margin:-1.8em 1em 0 0;}
#faq p{margin:0;padding:4px;font:12px/1.5em arial;background: #efefef;border-bottom:1px solid #369;}
-->
</style>
From DHTML to DOM scripting -- Christian Heilmann
http://icant.co.uk/articles/from-dhtml-to-dom/from-dhtml-to-dom-scripting.html#domtabs