jQuery cookie 根本不起作用

jQuery cookies not working at all

本文关键字:不起作用 cookie jQuery      更新时间:2023-09-26

我正在尝试在我的网站中使用带有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。出了什么问题?!

每个变量只应使用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});
}