答案 0 :(得分:5)
如果您重新加载整个页面,则必须向新页面提交一些信息。要实现此目的,您必须修改子菜单项的链接,或设置cookie。在页面加载时,您必须解析这些信息(网址或cookie),并将其应用于您的菜单。您还可以使用某些服务器端代码来预先呈现HTML,其子菜单已经打开。
在这种情况下,jsFiddle并不是向您展示它如何运作的好帮手。
修改强>
您可以执行以下操作(未经测试):
为您的顶级菜单<div>
添加唯一ID,即
<div class="menutop" id="posts">
为子项的每个URL添加一个哈希值,即
<li><a href="/Post/New#posts">Add New</a></li>
尝试使用此哈希打开菜单
$(document.location.hash).click();
答案 1 :(得分:-1)
您提供的代码适合我。
我分叉了您的代码并将“Users \ Add new”选项替换为“Users \ Google”:
<li><a href="http://www.google.com/" target="_blank">Google</a></li>
http://jsfiddle.net/marcosfromero/UKvva/
修改强>
在阅读了另一个答案后,我发现您想在离开页面后保持子菜单打开。在那种情况下,我的回答没有帮助。
答案 2 :(得分:-1)
这有用吗?您应该能够将它放在hitMe函数的上方。
var url = document.location.toString();
var url_array = url.split("/");
// get last item in array
var last = url_array[url_array.length-1];
$('a').each( function() {
// if it matches
if ($(this).attr('href').indexOf(last) != -1) {
$(this).parent().parent().show();
$(this).css( { 'background': '#FFF4D2', 'color': '#333' });
}
});
这应该取链接路径的值并打开/设置列表。
修改强>:
如果您转到http://jsbin.com/urupo3/5/edit并点击“预览”,则可以看到代码确实有效,因为链接<a href="edit">
已突出显示并展开。