如何记住Jquery的最后状态?

如何记住Jquery的最后状态?

问题描述:

我有一个菜单子菜单可以切换(隐藏/显示类型的交易)。 有没有比较简单的方法来记住菜单的最后一个状态? (我在点击标题时隐藏/显示子菜单并更改标题样式,以便背景箭头将改变(上/下))。 它工作正常,但我想它记住最后一个状态,所以当用户转到站点上的另一个页面并返回时,菜单显示的方式与用户离开它的方式相同。 我不太擅长饼干,所以任何帮助将不胜感激。 是的,菜单是从使用PHP的数据库动态生成的。 现在只有2个子菜单​​的标题,但会有更多,所以我需要一些方法,可以“扩展”任何数量的子菜单。 也有没有必要记得它更长,然后一次访问。如何记住Jquery的最后状态?

当前的URL是这样的: http://valleyofgeysers.com/geysers.php

可以使用jQuery cookie plugin for this

就躲在时,表现出,然后在什么基础上设置任何cookie显示负载设定设置cookie。 "display" - this.id

如果包裹着<div id="unique">每个菜单就像你有间歇泉(所以我们有一个唯一的ID来设置一个cookie),这样的事情应该工作:您可以通过命名饼干这样做

$('h3').next('.g_menu').filter(function() { 
    return $.cookie("expanded-" + $(this).parent("[id]").attr("id")); 
}).hide(); 

$('h3').click(function(){ 
    $(this).toggleClass('closeit').toggleClass('openit'); 
    var menu = $(this).next('.g_menu'); 
    if(menu.is(':visible')) { 
     menu.fadeOut(50); 
     $.cookie("expanded-" + $(this).parent().attr("id"), true); 
    } else { 
     menu.fadeIn(980);    
     $.cookie("expanded-" + $(this).parent().attr("id"), null); 
    } 
});​ 

为了使这项工作,在<div id="other"></div>You can play with a sample to see this in action here包裹<h3 class="openit">Other</h3><div class="g_menu"></div>

+0

谢谢。 它有帮助。 ('div:hidden')。prev('h3')。addClass('openit');我已经添加了这行 $('div:hidden')。 $('div:visible')。prev('h3')。addClass('closeit'); 并从h3标签中删除类属性。 现在似乎工作得很好。 再次感谢。 – 2010-03-27 04:51:51