Jquery 页面刷新后如何保持Cookie值

Jquery 页面刷新后如何保持Cookie值,jquery,cookies,Jquery,Cookies,我正在创建一个演示面板,供用户在到达我的演示站点时更改Wordpress主题的布局。用户通过选择下拉框更改值,此时将设置cookie 刷新页面后,我无法显示要实现的操作。因此cookie正在保存它的值,但在页面刷新之后,我的CSS操作将不会保持不变。我对jQuery不是很在行,所以任何帮助都将不胜感激。代码如下: $('#montage-demo-panel select.body-style-layout').change(function () { // Apply coo

我正在创建一个演示面板,供用户在到达我的演示站点时更改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();
                }
    });

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

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

更新:

  • 将代码放在页面上方的任意位置
  • 只需设置cookie并在选择更改时重新加载;比如:

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


  • 你确定页面刷新后cookie值不再存在吗?很抱歉,我不清楚-cookie值仍然存在-但是CSS值没有保留-就像我刷新页面,它恢复为原始值一样。但是实际的cookie值本身保持不变。您是否通过在
    change()
    事件中删除添加类来实现该样式?是的,我认为这就是我正在做的,但这是错误的吗?我不知道如何获得所需的操作。我创建了一个答案:)。Charlie,我如何调用
    select.body style
    并用您的答案实现它?我不知道该怎么做。太棒了,查尔斯!这花了一段时间,但终于奏效了。非常感谢!恭喜。很高兴你能帮忙!:)