切换菜单问题

时间:2012-03-21 19:21:17

标签: javascript jquery html css

我有一个切换菜单,请参阅http://jsfiddle.net/Wp2em/41/了解代码和功能。

在使用相同代码的真实网站上,每当您点击h3(此时为类别1,2和3,这是一个标签)时,它会将其子菜单向下切换一下,然后页面发生变化到新的h3链接页面,子菜单在新页面上折叠在一起。

我只是想知道有什么方法可以告诉子菜单在打开其父页面/新的h3链接页面时打开吗?请看这个具有侧边栏效果的bank site我想要切换菜单。

提前谢谢!

3 个答案:

答案 0 :(得分:2)

这是我的fiddle

您需要做的就是将“currentPage”类放在当前打开的li上,并在页面加载后打开菜单。我也把你的一些css移动了所以它现在应该移动得更顺畅。

**更新了小提琴代码。它现在将查看您当前的URL并将与其匹配的链接设置为currentPage。另外我补充说,如果另一个菜单打开,如果你点击另一个父菜单

,它将自动关闭

* * 更新了小提琴代码。好的,如果你点击箭头,菜单将展开,而不是转到链接(如银行网站)。我也改变了它,你必须将锚标记放在所有父H3中。

答案 1 :(得分:0)

如果页面加载并且生成子菜单(ul.second_level)(即从php),则解析必须可见的子菜单上的active css类。

ul.active {
    display: block
}

ul.second_level {
    display: none
}

这是您的点击功能的补充。不要触发click事件,因为它启动动画(我认为你不想要)。

更新

这是非常基本的东西,但我不知道如何创建菜单的HTML代码。如果您使用php和数据库(例如)创建菜单,请检查您所在页面的每个子菜单项。如果页面是子菜单中的一个页面,请在该子菜单上设置“活动”类。 CSS完成其余的工作(显示此子菜单并隐藏其他子菜单)。

如果你有一个静态页面,请使用javascript检查你所在的页面window.location.href。其余的都一样。

答案 2 :(得分:0)

这不是太简单。我有一个非常类似的问题,虽然我将页面发布回同一个网址,所以我使用了一个隐藏字段来存储已打开的H3的id列表。

我认为当您直接导航到新页面时,必须使用cookie来执行此操作。我们的想法是,每次打开H3时都会创建一个cookie并在其上设置一个值,并在每次关闭它时将其删除。您可以使用this plugin执行此操作。然后当你打开另一个页面时,脚本会读取应该从cookie中打开的H3并打开它们。

另一种方法是使用Ajax将打开/关闭的H3信息发送回服务器,服务器将其存储在会话数据中,并使用它来构建新页面的HTML,以便正确打开H3。