Html IE8 JavaScript不';我不在IE7工作
我正在处理的一个网站有一个带有可扩展/可折叠条目的侧边栏。此侧边栏上的某些项目旁边有一个项目符号,单击该项目符号可显示第二级侧边栏项目。我们正在使用onclick事件调用此函数来完成此操作。以下是脚本:Html IE8 JavaScript不';我不在IE7工作,html,css,javascript-events,Html,Css,Javascript Events,我正在处理的一个网站有一个带有可扩展/可折叠条目的侧边栏。此侧边栏上的某些项目旁边有一个项目符号,单击该项目符号可显示第二级侧边栏项目。我们正在使用onclick事件调用此函数来完成此操作。以下是脚本: <script type="text/javascript"> function menuClick(menu) { if(menu.nextSibling.nextSibling.nextSibling.style.display == "inline") {
<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";
}
}
功能菜单单击(菜单)
{
如果(menu.nextSibling.nextSibling.nextSibling.style.display==“内联”)
{
menu.nextSibling.nextSibling.nextSibling.style.display=“无”;
}
其他的
{
menu.nextSibling.nextSibling.nextSibling.style.display=“inline”;
}
}
这在IE8中有效,但在IE7中不起作用。在IE7中,当单击这些项目符号时,菜单将像正常一样展开,但不会显示下一级链接。同样在IE7中,这些项目符号位于各自链接上方的单独一行。如果你想看看这个网站,它是。如果您有IE8,您可以在兼容性视图中看到它是如何不工作的。非常感谢您的帮助。
显示:内联
确实不是您想要显示隐藏列表的内容,显示:块
(列表的默认设置)是您想要的内容。我怀疑这将有助于显示/隐藏,但如果没有可编辑的示例,很难说
你必须把箭头上的填充和边距弄得乱七八糟,才能把它们放在IE7的正确位置;设置一个特定于IE7的样式表,并使用IE7条件注释加载它,这将防止IE7胡说八道污染其他一切。然后开始调整列表、列表项和箭头上的边距和填充,直到IE7正常工作。我希望能够提供更好的建议,但让IE7让事情变得合理通常是一个简单的过程,即摆弄边距和填充(有时是<代码>显示代码>),直到它起作用(然后开始喝酒(或你的同类产品))
马特·鲍尔是对的,jQuery会让很多东西变得更干净。OTOH,你仍然需要击败IE7提交,这样jQuery就不会让所有的痛苦消失。试试提醒menu.nextSibling.nextSibling.nextSibling.style.display。它可能需要用大写字母内联。谢谢,用block而不是INLINE解决了这个问题。然而,我不知道你是否注意到侧边栏的“关于我们”部分。子弹出现在“关于我们”上面的一行。我已经在使用条件样式表来确定所有菜单项的位置。有什么我可以添加到这个样式表中,以确保这些菜单项与它们各自的项目符号位于同一行吗?酷,一半了。我看到“关于我们”的定位混乱,可能是宽度问题迫使换行。我注意到至少有一个列表也在缩进。尝试将
和
以及菜单中的任何其他内容的边距和填充设置为零,然后向上或向下调整边距和填充设置,直到其正常工作。使用IE7通常是一项“直到它工作为止”的工作。是的,我认为是宽度迫使它工作。我只是想知道为什么,但我一直在调整它们,它似乎起了作用。非常感谢,很好。在处理IE7时,我们都需要一些帮助和支持。我很高兴你们能在我最后的评论中解析出那个糟糕的英语,在我喝咖啡之前不要再评论了!