Jquery cookie - 切换框

时间:2016-04-28 13:51:48

标签: javascript jquery cookies toggle

我需要记住点击框的状态(如果显示或隐藏)。我正在使用cookies插件。

当我点击#clickable h3时,我想隐藏或显示#clickable p ...我需要在F5之后隐藏/显示它(因此它会记住它的状态)。

在初始加载时,必须隐藏该框,但如果不存在Javascript,则会始终显示该框 这是我的代码:

$(document).ready(function(){
    /* On load show/hide box depending on cookie */
    if($.cookie('click_cookie') == true){
        $.cookie('click_cookie', true);
        $("#clickable p").show();
    } else {
        $.cookie('click_cookie', false);
        $("#clickable p").hide();
    }

    /* When clicked */
    $("#clickable h3").click(function(){
        /* Animate box */
        $("#clickable p").animate({
            height: "toggle",
            opacity: "toggle"
        })
        /* Toggle cookie */
        if($.cookie('click_cookie') == true){
            $.cookie('click_cookie', false);
        } else {
            $.cookie('click_cookie', true);
        }
    });
});

问题在于它不能按预期工作。在F5之后,该框始终隐藏。 $.cookie('click_cookie') == true永远不会评估,因此它将永远隐藏。

1 个答案:

答案 0 :(得分:1)

试试这个。 $ .cookie返回并设置字符串:

$(function(){
  /* On load show/hide box depending on cookie */
  $("#clickable p").toggle($.cookie('click_cookie') == "true");

  /* When clicked */
  $("#clickable h3").click(function(){
    /* Animate box */
    $("#clickable p").animate({
        height: "toggle",
        opacity: "toggle"
    })
    /* Toggle cookie */
    var show = $.cookie('click_cookie') =="true"; // also false if no cookie at all
    $.cookie('click_cookie',show?"false":"true");
  });
});