考虑缩略图列表,用户从中单击一个缩略图以更改背景图像。以下脚本允许用户选择背景图像并应用它。
$(function() {
$('.themes li a img').click(function() {
var image = 'imgs/someimage.jpg';
//Set cookie
function setCookie(){
$.cookie("html_img", image, {expires:7});
var a = $.cookie('html_img');//get cookie value
return a;
}
});
});
另一个名为loadCookie.js
的脚本会在用户访问其他网页时加载包含所选背景的Cookie:
$(function() {
var startImage='';
startImage = setCookie();
$(document).ready(function(){
$('html').css("background", startImage);
});
});
IE8说'对象不支持这个动作,第3行';已安装Jquery cookie插件。我知道我找不到一些小错误。非常感谢任何使脚本有效的帮助。
答案 0 :(得分:2)
不是100%你想做什么,但我认为这就是你所追求的(假设你正在使用jquery.cookie.js):
$(function() {
if($.cookie("html_img")) {
$('html').css("background", $.cookie("html_img"));
}
$('.themes li a img').click(function() {
var image = 'imgs/someimage.jpg';
// var image = $(this).attr('src');
$('html').css("background", image);
$.cookie("html_img", image, {expires:7});
return false;
});
});
答案 1 :(得分:2)
由于这是关于相同代码(前一个here和here)发布的第三个问题,您似乎对此代码以及使用堆栈溢出的正确方法感到困惑。
以下是Cookie的一般工作方式。在一个页面上,您设置了一个cookie。在后续页面上,您可以阅读该cookie并使用它的价值。
在此代码示例中,您将第一个代码块中的cookie设置为背景图像。到目前为止,非常好。
在第二个代码块中,您再次调用setCookie。如果要从cookie中检索背景图像,则需要获取cookie值,而不是设置它。你的代码应该是这样的:
$(document).ready(function() {
// initialize background from cookie
var startImage = $.cookie("html_img"); // get cookie value
if (startImage) {
$(document.body).css("background-image", startImage);
}
// install click handler to change background
$('.themes li a img').click(function() {
var newBackground = 'imgs/someimage.jpg';
$(document.body).css("background-image", newBackground);
$.cookie("html_img", newBackground, {expires:7}); // save in cookie
});
});
您可能还需要知道,如果您没有为path: '/'
这样的Cookie指定路径选项,则Cookie只能在当前路径上读取,而不能在您网站的其他位置读取。该jQuery附加cookie库的文档是here。
至于使用stackoverflow,你应该问一个关于特定代码的明确问题,当受访者感到困惑或提供不是你想要问的答案时,你应该适当地澄清你的问题,直到你得到一个合适的答案。请记住,当人们以错误的方向提供答案时,很可能是因为他们不了解你的要求,而不是因为他们不知道如何回答。你不应该在一个新问题中再次发布同一个问题的细微变化。