javascript - 如何在页面更改时保持子菜单打开

标签 javascript jquery html css

我的菜单有这个 JS 代码:

$(document).ready(function () {
  $('#nav > li > a').click(function(e){
     if ($(this).attr('class') != 'active'){
       $('#nav li ul').slideUp();
       $(this).next().slideToggle();
       $('#nav li a').removeClass('active');
       $(this).addClass('active');
     }
  });
});

在页面更改时使子菜单保持打开状态的最佳方法是什么 - 也许使用 cookie 或 session ?

我在这里创建了一个 jsfiddle,所以你可以看到完整的 html 和 css 等:http://jsfiddle.net/bMkEj/

最佳答案

可以使用 HTML5 LocalStorage 来完成.

在点击处理程序中,将事件菜单文本保存到 localStorage:

$('#nav > li > a').click(function(e){
   ...
   localStorage.setItem("activeSubMenu", $(this).text());
});

在页面加载时,读取 localStorage 并展开菜单(如果找到):

$(document).ready(function(){
    var activeItem = localStorage.getItem("activeSubMenu");
    if(activeItem){
        $('#nav > li > a').filter(function() {
            return $(this).text() == activeItem;
        }).slideToggle();
    }
});

关于javascript - 如何在页面更改时保持子菜单打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17192460/

相关文章:

javascript - CSS 面板问题

jquery - 在网页上显示youtube json供稿

javascript - ASP.NET网站结构

javascript - 在 InfoWindow.content 中插入样式化的 HTML 表格?

javascript - 在 jQuery 中识别具有相对路径的链接

c# - Javascript 文化总是 en-us

javascript - 表单按钮不断在新窗口中显示结果

javascript - 如何从重新定位的 float div 折叠空白区域?

javascript - 如何在每次点击 jquery 中的链接时添加/追加和切换项目到 div?

html - 打印时如何更改div的宽度?