缓存背景图像(javascript)
当我点击某个链接(link1…)时,它会用jquery函数改变身体背景缓存背景图像(javascript),javascript,jquery,css,caching,Javascript,Jquery,Css,Caching,当我点击某个链接(link1…)时,它会用jquery函数改变身体背景 $("#link-home").click( function(){ $ ("body").removeClass("bg2 bg3 bg4").addClass("bg1"); }); $("#link-link1").click( function(){ $ ("body").removeClass("bg2 bg3 bg4").addClass("bg1"); });
$("#link-home").click( function(){ $
("body").removeClass("bg2 bg3 bg4").addClass("bg1");
});
$("#link-link1").click( function(){ $
("body").removeClass("bg2 bg3 bg4").addClass("bg1");
});
$("#link-link2").click( function(){ $
("body").removeClass("bg1 bg3 bg4").addClass("bg2");
});
问题是当我刷新网页时。它会将背景更改为默认值。有两种方法可供选择。首先,仅在更改背景时使用css(我尝试了几个小时没有结果),或者使用缓存。但是如何缓存我的背景图像呢?我试过了。我在head中添加了locache.js,但它不起作用。您不需要缓存背景图像,因为默认情况下浏览器会为您缓存它。 一个简单的解决办法是:
$(window).ready(function() {
var switchBackground = function(bg) {
var savedBackgorund = window.localStorage.activeBackground;
var bg = typeof bg !== 'undefined' ? bg :
(savedBackground ? savedBackground : 'bg1');
$('body').removeClass('bg1 bg2 bg3 bg4').addClass(bg);
window.localStorage.activeBackground = bg;
}
switchBackground();
$("#link-home").click( function() {
switchBackground("bg1");
});
$("#link-link1").click( function() {
switchBackground("bg1");
});
$("#link-link2").click( function() {
switchBackground("bg2");
});
});
您只更改当前窗口会话的背景。重新加载页面时,所有内容都会重新开始。如果您想要持久化数据,您需要使用cookies、localStorage或服务器端存储和检索用户首选项的方法。但为什么它不起作用呢?我做了坏事?我只在我的头上添加了.js文件。嗨,谢谢你的回复,但它对我不起作用。哪里会有问题?没有错误,当我点击一些链接时它不会改变背景。仍然存在默认的主体背景。