localStorage值变回零

时间:2014-04-14 08:36:36

标签: javascript jquery local-storage

我使用HTML,CSS,JS,AJAX和PHP做了一些游戏。

但是,为了保存用户的最佳分数,我使用了localStorage(第一次)。

出于某种原因,即使最佳分数显示在"最佳分数"用户框 仍在播放(正如我想的那样),当你刷新页面时它被移除,并再次变为0(这 我定义为默认值。)

有人可以为我指出问题吗?

以下是代码的具体部分:

$(".pi_tab .best_result #score").html(localStorage.record);

$("#pi_input").keyup(function() { // On pressing a digit
    var num = parseInt($("#counter").html()); // Convert counter's value to integer
    if (!isNaN(num)) // If it's a legal number
    {
        if (num + 1 > localStorage.record) // If it's the score is a new record
        {
            localStorage.record = num + 1; // Update record
            $(".pi_tab .best_result #score").html(localStorage.record); // Show record as "Best Score"
        }

    }

});

2 个答案:

答案 0 :(得分:2)

尝试使用w3schools中的代码模式:http://www.w3schools.com/html/html5_webstorage.asp

使用setItemgetItem来设置/获取数据,在我看来,您的代码正在localStorage对象上创建另一个名为record的属性,该属性更可能与其他javascript变量相同

答案 1 :(得分:1)

尝试使用属性setItem

localStorage.setItem("key", "value");

更新

  

注意:名称/值对始终存储为字符串。请记住在需要时将它们转换为其他格式!

来源:W3Schools


执行:

if (num + 1 > localStorage.getItem("record")) // If it's the score is a new record
{
    localStorage.setItem("record",num + 1);
    ...
}

也许这是你的问题。

替换为:

var record = num + 1;
var localRecord = localStorage.getItem("record");

if (record > parseInt(localRecord)) // If it's the score is a new record
{
    localStorage.setItem("record", record);
    ...
}