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