【问题标题】:How to Keep Cookie Value after page refresh页面刷新后如何保留 Cookie 值
【发布时间】:2013-04-20 03:05:05
【问题描述】:

我正在创建一个演示面板,供用户在访问我的演示站点时更改 Wordpress 主题的布局。用户通过选择下拉框更改值,此时设置了 cookie。

我无法在页面刷新后显示我想要执行的操作。所以 cookie 保存了它的价值,但是在页面刷新后,我的 CSS 操作不会保留在原地。我对 jQuery 不是很好,所以任何帮助都将不胜感激。代码如下:

$('#montage-demo-panel select.body-style-layout').change(function () {

        // Apply cookie
        $.cookie('body-style-layout', $(this).val(), { path: '/' });

                    var value = $(this).val();
                    if (value == 'fixed') {
                    var wrapper = $('#wrapper');
                    var header = $('#header');
                    var masthead = $('#masthead');
                    var branding = $('#branding');

                    wrapper.removeAttr('style');
                    header.removeAttr('style');
                    masthead.removeAttr('style');
                    branding.removeAttr('style');

                    wrapper.removeClass('wrapper-full purple-header-full');
                    header.removeClass('header-full');
                    masthead.removeClass('masthead-full');
                    branding.removeClass('branding-full');
                    location.reload();

                   } else {

                    var wrapper = $('#wrapper');
                    var header = $('#header');
                    var masthead = $('#masthead');
                    var branding = $('#branding');
                    var mainbg = $('#main-bg');
                    var access = $('#access');

                    wrapper.removeClass('purple-header');

                    wrapper.addClass('wrapper-full purple-header-full');
                    header.addClass('header-full');
                    masthead.addClass('masthead-full');
                    branding.addClass('branding-full');
                    mainbg.addClass('main-bg-full');
                    access.addClass('access-full');

        // Re-fresh page
        location.reload();
                }
    });

【问题讨论】:

  • 你确定页面刷新后cookie值不存在了吗?
  • 我很抱歉不清楚 - cookie 值确实保留了 - 但 CSS 值没有保持原位 - 就像我刷新页面并恢复到原始值一样。但实际的 cookie 值本身保持不变。
  • 您是否通过在change() 事件中删除-添加类来实现样式??
  • 是的,我认为这就是我正在做的事情,但这是错的吗?我不知道如何获得我想要的操作。
  • 我创建了一个答案:)。

标签: jquery cookies


【解决方案1】:

...如果您只是在change(); 事件上应用样式,它肯定不会影响页面刷新。我建议每次刷新页面时检查 cookie 值,例如:

$(function(){
   var cookieval = $.cookie('cookie-key');
   if (cookieval === 'something'){
      //here implement style according to 'something'
   } else {
      //here implement another style
   }
});

祝你好运!!

更新:

  1. 将上面的代码放在页面的任意位置;
  2. 只需设置 cookie 并在选择更改时重新加载;喜欢:

     $('#montage-demo-panel select.body-style-layout').change(function () {
        $.cookie('body-style-layout', $(this).val(), { path: '/' });
        location.reload();
     }
    
  3. 完成。

【讨论】:

  • 查理,我怎样才能打电话给select.body-style 并用你的答案来实现它?我对如何做到这一点感到困惑。
  • 太棒了,查尔斯!花了一段时间,但它终于奏效了。非常感谢!
  • 恭喜。很高兴能帮上忙! :)
猜你喜欢
  • 2011-08-23
  • 1970-01-01
  • 2016-12-20
  • 1970-01-01
  • 2022-06-10
  • 2023-03-28
  • 1970-01-01
  • 2017-03-05
  • 1970-01-01
相关资源
最近更新 更多