网站加载时,css子菜单会保持刷新状态

时间:2012-06-18 11:07:48

标签: java jquery css menu

我在网站上遇到此问题的一些原因。

当网站加载时,子菜单会显示一秒钟。如果我去点击那里的任何其他菜单,我将看到的第一个子菜单将再次显示。 我检查过Firefox,Chrome,到处都是野生动物园。

我花了很多时间来解决这个问题,但不幸的是我不能。 该页面位于:http://myproperty-solution.co.uk/index.php

有人可以帮我查看一下吗?

提前谢谢你,

此致

丹尼尔

5 个答案:

答案 0 :(得分:1)

我检查了你的代码,在你的样式表中添加了这段代码

 .sf-menu ul { display: none;}

答案 1 :(得分:1)

所有其他答案都很好但不完整 - 你应该只在javascript打开时隐藏它。当javascript关闭时,你仍然应该显示它们。

所以你应该做这样的事情:

.js .sf-menu ul {
    display: none;
}

.js只是当js打开时,<head>是你身上的一个类,<script> <!-- if (document.documentElement && document.getElementById){ document.documentElement.className += " js"; } // --> </script>

{{1}}

答案 2 :(得分:0)

添加style =“display:none;”到你的孩子菜单ul。

<ul class="sf-menu">
    <li><a  href="index.php">Home</a></li>
    <!-- ... -->
    <li><a href="?page=contactus">Contact us</a>
        <ul style="display: none;"> <!-- add style here -->
            <li><a href="#">Commercial</a></li>
            <!-- ... -->
        </ul>
    </li>
</ul> 

问题是它们的菜单脚本(superfish)是在document.ready事件上触发的,这会在加载页面上的所有元素之后发生。目前,您的子菜单在触发就绪事件之前可见。

编辑:正如其他人所说,应该将样式添加到CSS中,而不是直接在元素上使用样式属性。

答案 3 :(得分:0)

您应该在css中将它们设置为display:none,以便在页面加载时它们不可见。

在此处发布您的css代码,而不是将用户发送到您的网站进行修复。

答案 4 :(得分:0)

我认为这是因为您使用javascript控制菜单,并且javascript代码在加载页面时起作用。所以片刻你的菜单只使用css。

尝试添加到css文件

ul ul { display: none; }