带有case语句的jQuery cookie键值

时间:2014-03-24 15:14:02

标签: javascript jquery cookies

好的,到目前为止我的代码是这样的:

$( document ).ready(function() {

  // setup the initial display on page load
 var menu_state = $.cookie('atd_gridlist');



  // listen for the clicks
  $('.gridselect').click(function() {
     $.cookie('atd_gridlist', 'grid'); // update (or set) the cookie
     $(".grid").css("display", "block");
     $(".list").css("display", "none");
  });
  $('.listselect').click(function() {
     $.cookie('atd_gridlist', 'list'); // update (or set) the cookie
     $(".grid").css("display", "none");
     $(".list").css("display", "block");
  });

});

我还需要检查是否已经设置了cookie KEY,我认为case语句可以工作,但我不知道如何让case只读取cookie atd_gridlist键值......

如果是gridselect我需要显示网格div并隐藏列表div,如果是listselect我需要它来显示列表div并隐藏网格div,如果它没有设置,我想要网格div默认加载并隐藏列表。我也想每7天过期一次。

对正确方向的任何帮助表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

这样的事情会起作用吗?

$(function() {    
    var grid = $('.grid');
    var list = $('.list');    
    var stateCookie = 'atd_gridlist';

    var SetStateCookie = function(value) {
        $.cookie(stateCookie, value, { expires: 7, path: '/' });
    }

    var ShowByState = function(state) {
        state = state || 'grid';
        SetStateCookie(state);
        if ('grid' === state) {
            grid.show();
            list.hide();            
        } else if ('list' === state) {
            grid.hide();
            list.show();
        } 
    }

    $('.gridselect').click(function() {
        ShowByState('grid');
    });

    $('.listselect').click(function() {
        ShowByState('list');
    });

    ShowByState($.cookie(stateCookie));
});