如何永久改变一些元素的颜色?

时间:2013-07-24 06:31:46

标签: jquery json

我有一个php页面,我希望用户可以更改某些元素的颜色,下次加载页面时,默认情况下应加载他的选择。

我正在使用jQuery click()函数来更改颜色,并在服务器端保存更改我认为最好的方法是使用jquery / json,但我对此完全是新的。

我应该有一个单独的json文件存储颜色选项吗?我在网上发现了很多关于jquery / json的故事,但仍然需要一个例子来完成这个任务。请提供有用的链接或代码示例。

 #div01 {
        background:#008080;
        color:#ffffff;
    }


$('#btnBlue').click(function () {
    $('#div01').css('background', '#0000ff');
    $('#div01').css('color', '#ffffff');
});

$('#btnRed').click(function () {
    $('#div01').css('background', '#ff0000');
    $('#div01').css('color', '#0000ff');
});

2 个答案:

答案 0 :(得分:4)

你需要在某个地方保持这些元素的状态,而不是不可能。

要保持状态,您需要确定是使用客户端存储还是服务器端持久性。

如果您只想在浏览器中存储数据,那么您可以考虑使用cookie或html5 localStorage,但缺点是一旦设置完所有使用浏览器的用户将获得更新状态。

如果您在站点中有用户跟踪,那么您可能必须使用服务器端持久性来存储与当前用户相关的状态

答案 1 :(得分:1)

如果您正在寻找有关如何执行此操作的具体示例,则可能会这样做。 首先,使用此JavaScript库:https://github.com/carhartl/jquery-cookie

然后,这将是你的脚本:

var backgroundColor = $.cookie('backgroundColor'), color = $.cookie('color');
$('#div01').css('background', backgroundColor);
$('#div01').css('color', color);

$('#btnBlue').click(function () {
    $.cookie(backgroundColor, '#0000ff');
    $.cookie(color, '#ffffff');
    $('#div01').css('background', backgroundColor);
    $('#div01').css('color', color);
});

$('#btnRed').click(function () {
    $.cookie(backgroundColor, '#ff0000');
    $.cookie(color, '#0000ff');
    $('#div01').css('background', backgroundColor);
    $('#div01').css('color', color);
});