如何在jQuery中记住cookie中顾问的真/假状态?

时间:2015-09-23 13:41:46

标签: jquery yii

我遇到以下jQuery代码的问题。此代码是更大的Yii项目的一部分。我希望这个顾问在我进入网站时可见,然后当它关闭时将状态保存在cookie中。然后我重新加载页面,它已关闭。如何使用此代码执行此操作?

var adviserIsVisible = true, 
    adviserCookie = getCookie("adviser"),

    if(adviserCookie != "") {
        adviserIsVisible = adviserCookie;
    }

    if(adviserIsVisible == true){
        $("#adviser-slide-button").html("&lt");                 
        $(".adviser-slide").animate({"left": "0px"});
        adviserIsVisible = false;
    }
    else {
        $("#adviser-slide-button").html("&gt"); 
        $(".adviser-slide").animate({"left": "-206px"});
        adviserIsVisible = true;
    }

    $("#adviser-slide-button").live("click",function(){
        if(adviserIsVisible == true){
            $("#adviser-slide-button").html("&lt");
            $(".adviser-slide").animate({"left": "0px"});
            adviserIsVisible = false;
        }
        else{       
            $("#adviser-slide-button").html("&gt");
            $(".adviser-slide").animate({"left": "-206px"});
            adviserIsVisible = true;
        }

    setCookie("adviser", adviserIsVisible, 1);


    });

1 个答案:

答案 0 :(得分:0)

我设置和检索cookie的方式是我创建的两个函数如下:

function SetTheCookie(key, value)
{
    // Expire date for cookie
    var expires = new Date();
    // Set expire date for cookie
    expires.setTime(expires.getTime() + (1 * 24 * 60 * 60 * 1000));
    // Set cookie key and value which is passed in by parameters 
    document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
}

function GetTheCookie(key)
{
    // Check to see if there is a cookie matching the value passed in by parameter
    var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
    return keyValue ? keyValue[2] : null;
}

使用SetTheCookieGetTheCookie的示例:

EXAMPLE JSFIDDLE