获取相关的Jquery子菜单以在新页面加载时保持打开状态?

时间:2011-06-06 11:24:11

标签: javascript jquery menu

我需要关注menu的帮助。

单击子菜单项并加载其他页面时,如何让特定子菜单保持打开状态。

Code on jsfiddle

3 个答案:

答案 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">已突出显示并展开。