JQuery检查是否设置了localStorage

时间:2014-05-26 00:58:01

标签: javascript jquery html html5 local-storage

我在一个名为clicker的div页面上有一些文本,当我点击这个div时,我想要将localStorage值设置为1(如果为0)或0(如果为1)。

我在this fiddle中有以下内容。 它似乎是在切换值,但不是很正确,例如,如果我点击文本'click'然后我可以看到它使aaa = 1但是如果我再次运行小提琴这个类没有应用?这样做的最佳方式是什么?

JS

        $(function(){
            $('#clicker').click(function() {
                if (localStorage['aaa'] == "1") {
                    $(this).addClass('off');
                    localStorage.setItem("aaa", 0);
                }
                else {
                    $(this).removeClass('off');
                    localStorage.setItem("aaa", 1);
                }
            });

            if (localStorage['aaa'] == "1") {
                $('#play').addClass('off');
            }
        });

HTML

        <div id="clicker">click</div>

CSS

        .off {
            color: #fff;
            background: grey;
        }   

2 个答案:

答案 0 :(得分:2)

因为您使用了错误的选择器ID

if (localStorage['aaa'] == "1") {
    //$('#play').addClass('off');
    $('#clicker').addClass('off');
}

JSfiddle

答案 1 :(得分:0)

我可能正在咆哮错误的树,但我猜您期望像&#39; 跨域localStorage &#39;。 如果您希望自己的localStorage['aaa']可以从您的网站和jsfiddle访问,则需要管理同源策略的限制。

您可能希望阅读Nicholas C. Zakas的这篇文章:
向XAuth学习:跨域localStorage
http://www.nczonline.net/blog/2010/09/07/learning-from-xauth-cross-domain-localstorage/