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