IE8 JavaScript在IE7中不起作用

时间:2010-12-13 22:24:49

标签: html css javascript-events

我正在处理的网站有侧栏,可扩展/可折叠条目。这个侧边栏上的一些项目旁边有一个子弹,当点击它时,会显示第二级侧边栏项目。我们使用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,你可以看到它在兼容性视图中是如何工作的。我非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

display: inline真的不是你想要显示的隐藏列表,display: block(列表的默认值)就是你想要的。我怀疑这对显示/隐藏有帮助,但如果没有可编辑的例子,很难说。

你必须弄乱箭头上的填充和边距才能让它们在IE7中的正确位置;设置一个IE7特定的样式表并使用IE7条件注释加载它,这将使IE7的废话无法污染其他所有内容。然后开始调整列表上的边距和填充,列出项目和箭头,直到IE7表现为止。我希望能够提供更好的建议,但让IE7渲染事物通常是一个简单的过程,摆弄边距和填充(有时display),直到它工作(然后喝酒(或你的)相当于)开始)。

Matt Ball是对的,jQuery会让很多人更清洁。 OTOH,你仍然必须击败IE7,所以jQuery不会让所有的痛苦消失。