在页面刷新后记住div上的切换状态

在页面刷新后记住div上的切换状态

问题描述:

我有一个基于按钮点击展开/折叠为自动高度的div。我工作得很好,但我想用jquery.cookie.js来记住用户是否扩展它,以便它在页面刷新时保持打开状态。我看过类似的问题在页面刷新后记住div上的切换状态

例如Keep toggle state on divs using cookie.js after page refresh

但是,我似乎无法得到这个工作适合我的情况。这不仅仅是一个直接的显示/隐藏,而且我很难弄清楚正确设置和使用cookie的语法。这里是我的工作代码的小提琴,也许有人可以帮助我?

http://jsfiddle.net/j2Rsy/

这里是相关代码:

$('#viewless').hide(); 
$('#viewmore').click(function(){ 
    var el = $('#resize01'), 
    curHeight = el.height(), 
    autoHeight = el.css('height', 'auto').height(); 
    el.height(curHeight).animate({height: autoHeight}, 500); 
    $('#viewmore').toggle(); 
    $('#viewless').toggle(); 
}); 

$('#viewless').click(function(){ 
$('#resize01').animate({height: '190'}, 500); 
    $('#viewmore').toggle(); 
    $('#viewless').toggle(); 
}); 
+0

我发现localStorage的更轻松,更少的代码 – 2013-05-10 00:27:58

尝试

$('#viewless').hide(); 
$('#viewmore').click(function(){ 
    var el = $('#resize01'), 
     curHeight = el.height(), 
     autoHeight = el.css('height', 'auto').height(); 
    el.height(curHeight).animate({height: autoHeight}, 500); 
    $('#viewmore').hide(); 
    $('#viewless').show(); 

    $.cookie('viewmore', true); 

}); 

$('#viewless').click(function(){ 
    $('#resize01').animate({height: '190'}, 500); 
    $('#viewmore').show(); 
    $('#viewless').hide(); 

    $.cookie('viewmore', false); 
}); 

if($.cookie('viewmore') == 'true'){ 
    $('#viewmore').click(); 
} else { 
    $('#viewless').click(); 
} 

演示:Fiddle

+1

这工作!所以,如果我理解正确,你只是启动已经建立的点击功能? – Patrick 2013-05-10 01:01:22

+0

@yes,它比重复代码更容易 – 2013-05-10 01:06:26

+0

非常感谢,jQuery(和一般的javascript)对我来说还是很新的。我很感激。 – Patrick 2013-05-10 01:16:08