使用cookie.js设置cookie

时间:2014-08-08 00:50:31

标签: javascript jquery html cookies

我正在尝试让页面记住使用jquery.cookie.js单击单选按钮而触发的事件,但它没有保存cookie。

这是我的代码:

HTML:

<input type="radio" id="foo" name="langs" value="fooval">
<input type="radio" id="bar" name="langs" value="barval">
<span class="foo">Foo</span>

<span class="bar">Bar</span>
<script src="http://code.jquery.com/jquery.js"></script>
<script src="https://raw.githubusercontent.com/carhartl/jquery-cookie/master/src/jquery.cookie.js"></script>

JS:

$(document).ready(function () {

    $('input').change(

    function () {

        var closed = $('span').is(":hidden");
        if ($(this).val() == "barval") {
            $('.foo').fadeOut();
            $('.bar').fadeIn();
        } else {
            $('.bar').fadeOut();
            $('.foo').fadeIn();
        }

        setCookie("open", closed, 365);
    });

    var showsqux = getCookie("open");
    if (showqux == "true") {
        $('.foo').fadeOut();
        $('.bar').fadeIn();
    } else {
        $('.bar').fadeOut();
        $('.foo').fadeIn();
    }
});


function setCookie(c_name, value, exdays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
    document.cookie = c_name + "=" + c_value;
}

function getCookie(c_name) {
    var i, x, y, ARRcookies = document.cookie.split(";");
    for (i = 0; i < ARRcookies.length; i++) {
        x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
        y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
        x = x.replace(/^\s+|\s+$/g, "");
        if (x == c_name) {
            return unescape(y);
        }
    }
}

CSS:

.bar {
    display:none
}

CodePen DEMO

我哪里错了?

2 个答案:

答案 0 :(得分:1)

var show s qux

var showsqux = getCookie("open");

if(showqux ==“true”){

if (showqux == "true") {

认识那些错别字。 :P

答案 1 :(得分:1)

尽量避免使用Cookie,因为它是一种过时的标准。

WebStorage是我推荐的新HTML5标准,您可以在这里永久存储最多10mb的数据,或者只是为了查看该会话。

你可以得到&amp;使用以下两个简单命令之一设置数据:&#39; getItem&#39;或者&#39; setItem&#39;

有关详情,请参阅:http://www.w3schools.com/html/html5_webstorage.asp