缓存背景图像(javascript)

缓存背景图像(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"); });

当我点击某个链接(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-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文件。嗨,谢谢你的回复,但它对我不起作用。哪里会有问题?没有错误,当我点击一些链接时它不会改变背景。仍然存在默认的主体背景。