【发布时间】:2012-05-11 14:17:14
【问题描述】:
CSS:
#divMainMenu ul {
list-style-type: none;
padding: 5px 0;
height:400px;
}
#divMainMenu li {
height: 17px;
margin: 3px 0;
padding: 14px 2px;
border: 1px solid #eee7cb;
background: url(../../Images/50pTransparent-20x20.png) repeat;
}
#divMainMenu li ul{
display: none;
}
html 和脚本:
<script type="text/javascript">
function Show(pObj)
{
pObj = document.getElementById(pObj).id;
if (document.getElementById(pObj).style.display=='none')
document.getElementById(pObj).style.display='block';
else
document.getElementById(pObj).style.display='none';
}
</script>
<div id="divSidePanel">
<div id="divMainMenu">
<ul>
<li onclick="Show('Buyers')">Buyers
<ul id="Buyers" style="display:none;">
<li>Search</li>
<li>Submit request</li>
<li>Send message to owner</li>
</ul>
</li>
<li>Sellers</li>
<li>Contact Us</li>
</ul>
</div>
</div>
问题: 当我点击文本 Buyers 时,它会显示子/嵌套列表。但是,其他项目不会为嵌套列表腾出空间。因此嵌套列表会覆盖主列表的空间。
这是我的代码的问题还是它的标准工作方式?有没有办法让其他项目“下推”为嵌套项目让路?
谢谢!
【问题讨论】:
-
pObj = document.getElementById(pObj).id;- 那句话让我脸红了。 -
如果你想知道为什么:如果元素不存在,它会抛出一个错误,如果它确实存在,它就是一个空操作,因为它几乎等于“pObj = pObj”。在以下代码中使用
var elem = document.getElementById(pObj),然后使用elem.style...。 -
@ThiefMaster 我不打算以这种方式分配 pObj。这只是正在进行的工作......无论如何,我也尝试了你的方法,但仍然没有改变。另请注意,即使使用 pObj,当我提醒显示属性的值时,它确实显示“无”。所以从技术上讲,它应该给出一些答案。另外,当我写 display='block' 时,不是说 display='',而是嵌套列表显示但没有扩展。
-
是的,这不是答案,只是评论...
标签: javascript css list