日期:2014-05-17  浏览次数:20601 次

关于ul的display属性的问题
一个用鼠标点击后可以扩展的代码,如下
<div id="menu_bt"><a onClick="expand(1)" class="menuParent" href="javascript:void(0);">關於我們</a></div>
<ul id="child1" style="display:none ">
<li><IMG height=9 src="./images/menu_icon.gif" width=9><a class="menuChild">&nbsp;公司簡介</a></li>
<li><IMG height=9 src="./images/menu_icon.gif" width=9><a 
</ul>

<SCRIPT language=javascript>
function expand(el)
{
childObj = document.getElementById("child" + el);

if (childObj.style.display == 'none')
{
childObj.style.display = 'block';
}
else
{
childObj.style.display = 'none';
}
return;
}
</SCRIPT>

css:
ul {
margin:0px;
padding:0px;
}

ul li{
list-style-type:none;
margin:7px;
padding:1px;
height:10px;
}

问题:在上面的代码中,我把ul属性的display放在代码中,运行网页后,点击关于我们,就可以打开扩展菜单,可是当我把display属性放在css文件中的ul定义中的时候,要点击两次关于我们那个链接才会显示出扩展菜单,也就是第一下点是没有反应的,为什么同样的一个属性设定,放在css文件中和放在html文件中的效果会不一样
ul {
  display:none
margin:0px;
padding:0px;
}

------解决方案--------------------
貌似写在css里面时,用js读取style.display值是空的
------解决方案--------------------
那可能是这个原因,还是用jquery省事,一句话搞定,不用判断了

$('#child1').toggle();