jQuery cookie根本不起作用

时间:2014-11-17 21:43:07

标签: javascript jquery cookies

我正在尝试在我的网站中使用带有jQuery的cookie,但一切都没有发生。

这是我的HTML:

<script type='text/javascript' src='http://code.jquery.com/jquery-1.8.3.js'></script>
<script src="jquery.cookie.js"></script>
<script src="scripts.js"></script>

我正在尝试检查cookie是否已设置 - 如果已设置,则使用该值,如果没有,则创建一个新值。这是我的jQuery:

$(window).load(function(){

/* Using jQuery cookie plugin: https://github.com/carhartl/jquery-cookie */
/* Check value of cookies */

var light = $.cookie("light-color");
var dark = $.cookie("dark-color");

if (light == null) {
    $.cookie("light-color", "#0095FF");
    var light = $.cookie("light-color");
}
if (dark == null) {
    $.cookie("dark-color", "#0068B3");
    var dark = $.cookie("dark-color");
}

changeColor(light, dark);

function changeColor(l, d) {

    $.cookie('light-color', l);
    $.cookie('dark-color', d);

    $('.site_color').css({"color":l});
    $('#nav #on').css({"color":d});

}

});

但是,由于未设置明暗,因此未设置Cookie。出了什么问题?!

1 个答案:

答案 0 :(得分:2)

每个变量只应使用var次。从空检查中删除它。当你在空值检查中使用它时,变量的范围意味着外部变量不会改变。

将changeColor函数移到$(function(){}块之外。

确保您在浏览器中启用了Cookie。

$(function(){

    /* Using jQuery cookie plugin: https://github.com/carhartl/jquery-cookie */
    /* Check value of cookies */

    var light = $.cookie("light-color");
    var dark = $.cookie("dark-color");

    if (light == null) {
        $.cookie("light-color", "#0095FF");
        light = $.cookie("light-color");
    }
    if (dark == null) {
        $.cookie("dark-color", "#0068B3");
        dark = $.cookie("dark-color");
    }

    changeColor(light, dark);
});

function changeColor(l, d) {
    $.cookie('light-color', l);
    $.cookie('dark-color', d);

    $('.site_color').css({"color":l});
    $('#nav #on').css({"color":l});
    $('#menu_dropdown #on').css({"color":d});
}