使用local.Storage(value)更改背景颜色

时间:2013-02-20 17:35:19

标签: javascript html css

我想更改div的背景颜色:

箭盒

为此,我必须点击你可以点击。 triggerd函数保存“farbe”键的本地存储值。

<div class="radior" style="background-color:#8066CC;"    onClick='localStorage.setItem("farbe","#8066CC");hey()'></div> 

之后,询问关键“farbe”的值。除此之外还有一个例子...我认为你最好阅读我的代码,因为我觉得我需要一些英语教训对不起!

function hey(){
switch (localStorage.getItem("farbe")){
case "#121212":
var h = "black"

case "#1bc38e":
var h = "turk"

case "#C3594B":
var h = "red"

case "#8066CC":
var h = "lila"
    }
document.getElementsByClassName("arrow_box")[0].style.backgroundColor=""+h+""; ;

   }

SOmehow它不起作用! 或者你在小提琴http://jsfiddle.net/PpsLH/4/看一个我的问题的例子!来自德国的问候!

3 个答案:

答案 0 :(得分:1)

将您的功能更改为:

hey = function(){
  switch (localStorage.getItem("farbe")){
    case "#121212":
    var h = "black";
    break ;

    case "#1bc38e":
    var h = "turk";
    break ;

    case "#C3594B":
    var h = "red";
    break ;

    case "#8066CC":
    var h = "lila";
    break ;
  }
    document.getElementsByClassName("arrow_box")[0].style.backgroundColor=h;
}

顺便说一下,lila不是有效的HTML颜色,所以它不起作用。

答案 1 :(得分:1)

您应该从代码中删除任何内联事件处理程序。此外,整个开关部分和更改为命名的CSS颜色似乎是多余的。看看用jQuery编写的这段代码

var box = $('div.arrow_box');

$('body').on('click','div.radior',function(e){
    var color = $(e.target).css('backgroundColor');    
    localStorage.setItem('farbe',color);
    box.css('backgroundColor',color);
});

和工作小提琴http://jsfiddle.net/chrisdanek/BaJvC/5/

答案 2 :(得分:1)

试试这个

<div  class="arrow_box"><a>Arrow Box</a></div>


<div class="radior" style="background-color:#C3594B;" onClick="localStorage.setItem('farbe','#C3594B');window.hey()"></div>
<br>
<div class="radior" style="background-color:#8066CC;" onclick='localStorage.setItem("farbe","#8066CC");window.hey()'></div>

和javascript

window.hey = function ()
{
    var h="";
    if (localStorage.getItem("farbe")=="#121212")
    {
        var h = "black";
    } else
    if (localStorage.getItem("farbe")=="#1bc38e")
    {
        var h = "turk";
    } else
    if (localStorage.getItem("farbe")=="#C3594B")
    {
        var h = "red";
    } else
    if (localStorage.getItem("farbe")=="#8066CC")
    {
        var h = "lila";
    }
    document.getElementsByClassName("arrow_box")[0].style.backgroundColor=h+"";
}