我有一个slideDown菜单,我想记住菜单的最后一个状态,以便在页面加载时已经选择了最后一个状态。我试图通过使用jQuery.cookie来实现这一点,这就是我所做的:
$("#menu h3").click(function(){
$("#menu ul ul").slideUp();
if(!$(this).next().is(":visible")){
var id = $(this).attr('id');
$.cookie(id, $(this).is(':visible') ? "closed" : "open");
if ($.cookie(id) == "open") {
$(this).next().slideDown();
}
}
});
>> jsFiddle <<
当我重新加载页面时,我没有得到最后一个状态,.slideDown()
不起作用。
任何人都可以帮助我吗?
谢谢!
答案 0 :(得分:1)
我稍微修改了你的代码。试试这个:
var active = $.cookie('active'),
$h3 = $("#menu h3"),
$activeH3 = $h3.filter('#' + active);
$h3.click(function(e, speed) {
$("#menu ul ul").slideUp(speed);
if (!$(this).next().is(":visible")) {
$(this).next().slideDown(speed);
$.cookie('active', this.id);
}
});
if ($activeH3.next().is(':hidden')) {
$activeH3.trigger('click', [0]);
}
确保您还为h3
元素设置了ID。