获得一个系统设置,可以在用户单击按钮时交换样式表。 Cookie 已设置。
jQuery(document).ready(function() {
$(function() {
$("#designSwap li a").click(function() {
$("link").attr("href",$(this).attr('rel'));
$.cookie("cssSessionColor",$(this).attr('class'), {expires:null, path: '/'});
$.cookie("css",$(this).attr('rel'), {expires: 365, path: '/'});
updateColor($(this).attr('class'));
return false;
});
});
});
否则,如果用户没有在样式表之间设置首选项,则随机选择一个并只设置一个 session cookie:
if($.cookie("css")) {
$("link").attr("href",$.cookie("css"));
}else if($.cookie("cssSession")) {
$("link").attr("href",$.cookie("cssSession"));
}else{
var rand = Math.floor(Math.random()*2)
if (rand > 0) {
$("link").attr("href","/lib/css/common-dark.css");
$.cookie("cssSessionColor","dark", {expires:null, path: '/'});
$.cookie("cssSession","/lib/css/common-dark.css", {expires:null, path: '/'});
}else{
$("link").attr("href","/lib/css/common.css");
$.cookie("cssSessionColor","light", {expires:null, path: '/'});
$.cookie("cssSession","/lib/css/common.css", {expires:null, path: '/'});
};
}
一切正常。问题在于为网站上的 Flash 视频播放器设置颜色。 (更新颜色函数)。如果用户单击链接选择颜色,它会起作用,但仅通过读取 cookie 不起作用。
我们认为问题在于它在 DOM 准备就绪之前触发。
我们正在尝试做的是确保一旦就绪函数命中,我们就会调用调整颜色。这很可能是一件容易的事情,只是我们没有看到。
最佳答案
你有:
$(function() { });
嵌套在里面:
jQuery(document).ready(function() { });
这两个意思是一样的,前者是后者的简写。我敢打赌这会导致您的问题,因为您将匿名函数绑定(bind)到 document.ready 上的 document.ready。 Document.ready 因此已经发生,不会调用该函数。
编辑:我考虑得更多,看来我可能是错的......从来没有这样做(没有理由这样做),但这确实有效,因此不是你的问题。我会把帖子留在这里,以便您可以更正它。 :)
关于javascript - DOM Ready后设置Cookie影响样式/调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5668854/