繁体   English   中英

IE7 中的 IE8 JavaScript

[英]IE8 JavaScript in IE7

我正在处理的网站有带有可展开/可折叠条目的侧边栏。 此侧边栏上的某些项目旁边有一个项目符号,单击该项目符号时,会显示第二级侧边栏项目。 我们正在使用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";
    }
}
</script>

这适用于 IE8,但不适用于 IE7。 在 IE7 中,当单击这些项目符号时,菜单会正常展开,但不会显示下一级链接。 同样在 IE7 中,这些项目符号位于其各自链接上方的单独一行中。 如果您想查看网站www.triptac.org 如果你有 IE8,你可以在兼容性视图中看到它是如何工作的。 我将不胜感激任何帮助。

display: inline确实不是您想要显示隐藏列表的内容, display: block (列表的默认设置)是您想要的。 我怀疑这将有助于显示/隐藏,但如果没有可编辑的示例就很难说。

您必须弄乱箭头上的填充和边距,才能将它们放在 IE7 中的正确位置; 设置一个特定于 IE7 的样式表并使用 IE7 条件注释加载它,这将防止 IE7 胡说八道污染其他一切。 然后开始调整列表、列表项和箭头的边距和内边距,直到 IE7 自行运行。 我希望能够提供更好的建议,但是让 IE7 使事情变得合理通常是一个简单的过程,即摆弄边距和填充(有时是display )直到它起作用(然后开始喝酒(或你的等价物)) .

Matt Ball 是对的,jQuery 会让这个更干净。 OTOH,你仍然必须击败 IE7 才能提交,所以 jQuery 不会让所有的痛苦消失。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM