0

我使用 jQuery 在 ASP.NET 母版页上创建了一个垂直菜单。以下是一些需要考虑的事项:

  • 菜单结构基于有序列表。列表项具有包含子菜单选项的嵌套项 (UL)。
  • 加载页面时,所有子菜单必须显示为折叠状态。这很容易通过 display: none 子菜单样式规则来完成。但是,即使禁用 Java 脚本,该网站也应该运行。所以我想我会设置子菜单规则样式来显示:在 $(document).ready(function ()) 期间阻止并将显示更改回“none”。因此,如果 JavaScript 被禁用,菜单将显示所有已展开的子菜单项。

问题:当前启用 JavaScript 时,加载页面时所有子菜单选项都展开,然后在运行 jQuery 就绪方法后,子菜单使用以下命令折叠:

$('.menu li > .sub-menu').hide(); 

我想显示所有子菜单项已经折叠的页面,并避免在页面加载后折叠子菜单项。我怎样才能做到这一点?

谢谢

4

2 回答 2

0

也许您可以有 2 个版本的菜单,也许您可​​以使用noscript标记并将您的非 JavaScript 菜单版本放在那里

或者另一个选择是你可以在菜单之后添加一个脚本标签

$('.menu li > .sub-menu').hide(); 

没有 $(document).ready

于 2012-07-08T08:22:01.610 回答
0

我想,我刚刚找到了答案。您想要的是将这些子菜单的 CSS 设置为display: none;,然后在 noscript 标记中创建一个重复的子菜单。如果启用了js,noscript版本是不显示的,其他的也是css的原因。如果 JS 被禁用,CSS 将作用于 JS 版本,但 noscript 标签会生效。

于 2012-07-08T08:23:26.180 回答