我正在处理的网站有侧栏,可扩展/可折叠条目。这个侧边栏上的一些项目旁边有一个子弹,当点击它时,会显示第二级侧边栏项目。我们使用onclick事件来调用此函数来执行此操作。这是脚本:
<script type="text/javascript">
function menuClick(menu)
{
if(menu.nextSibling.nextSibling.nextSibling.style.display == "inline")
{
menu.nextSibling.nextSibling.nextSibling.style.display = "none";
}
else
{
menu.nextSibling.nextSibling.nextSibling.style.display = "inline";
}
}
这适用于IE8,但在IE7中不起作用。在IE7中,单击这些项目符号时,菜单将像平常一样展开,但不会显示下一级链接。同样在IE7中,这些子弹在单独的线路上位于它们各自的链路之上。如果您想查看该网站www.triptac.org。如果你有IE8,你可以看到它在兼容性视图中是如何工作的。我非常感谢任何帮助。
答案 0 :(得分:1)
display: inline
真的不是你想要显示的隐藏列表,display: block
(列表的默认值)就是你想要的。我怀疑这对显示/隐藏有帮助,但如果没有可编辑的例子,很难说。
你必须弄乱箭头上的填充和边距才能让它们在IE7中的正确位置;设置一个IE7特定的样式表并使用IE7条件注释加载它,这将使IE7的废话无法污染其他所有内容。然后开始调整列表上的边距和填充,列出项目和箭头,直到IE7表现为止。我希望能够提供更好的建议,但让IE7渲染事物通常是一个简单的过程,摆弄边距和填充(有时display
),直到它工作(然后喝酒(或你的)相当于)开始)。
Matt Ball是对的,jQuery会让很多人更清洁。 OTOH,你仍然必须击败IE7,所以jQuery不会让所有的痛苦消失。