在ASP .NET中使用jQuery和母版页更改菜单样式

时间:2012-07-08 08:09:45

标签: jquery asp.net css master-pages

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

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

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

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

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

谢谢

2 个答案:

答案 0 :(得分:0)

也许你可以有两个版本的菜单,可能你可以使用 noscript 标签并将你的非javascript菜单版本放在那里

或者其他选项可能是您可以在菜单后面添加脚本标记

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

没有$(文件).ready

答案 1 :(得分:0)

我认为,我刚刚找到了答案。你想要的是将这些子菜单的CSS设置为display: none;,然后在noscript标签中创建一个重复的子菜单。如果启用了JS,则不会显示noscript版本,也不会显示另一个版本。如果JS被禁用,那么CSS将作用于JS版本,但是noscript标签会启动。