【问题标题】:Remember toggle state on div after page refresh记住页面刷新后在 div 上的切换状态
【发布时间】:2013-05-04 14:37:13
【问题描述】:

我有一个 div,它可以根据按钮点击展开/折叠到自动高度。我的工作正常,但我想使用 jquery.cookie.js 来记住用户是否扩展它,以便它在页面刷新时保持打开状态。我看过类似的问题

例如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();
});

【问题讨论】:

  • 我发现 localStorage 更简单,代码更少

标签: jquery cookies


【解决方案1】:

试试

$('#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

【讨论】:

  • 这行得通!那么,如果我理解正确的话,您只是在启动已经建立的点击功能?
  • 非常感谢,jQuery(和一般的 javascript)对我来说仍然很新。我很感激。
  • 嘿@Arun P Johny 你知道如何在我的情况下应用类似的东西吗?谢谢stackoverflow.com/q/32687806/4642215
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-19
  • 1970-01-01
相关资源
最近更新 更多