Jquery 到目前为止,本地存储仍然存在
好吧,这真让我头疼。不久前,我制作了一个名为“水晶收集器”的简单游戏,在这个游戏中,用户将得到一个数字(比如112)和一行带有隐藏值的水晶。玩家会尝试匹配号码。如果他与之匹配,他会赢,否则他会输。赢家和输家将被记录在底部。他们不会坚持下去。节目如下: 现在,我正试图通过添加本地存储的持久统计跟踪来增加游戏的趣味性。这就是说,如果用户刷新或离开页面,他的胜负将保持不变 试图实现这一点产生了奇怪的结果。看起来它确实在跟踪,但只是在一定程度上。赢家和输家的console.logs可以从零变为一,但决不能超过这个值。发生什么事了Jquery 到目前为止,本地存储仍然存在,jquery,html,local-storage,Jquery,Html,Local Storage,好吧,这真让我头疼。不久前,我制作了一个名为“水晶收集器”的简单游戏,在这个游戏中,用户将得到一个数字(比如112)和一行带有隐藏值的水晶。玩家会尝试匹配号码。如果他与之匹配,他会赢,否则他会输。赢家和输家将被记录在底部。他们不会坚持下去。节目如下: 现在,我正试图通过添加本地存储的持久统计跟踪来增加游戏的趣味性。这就是说,如果用户刷新或离开页面,他的胜负将保持不变 试图实现这一点产生了奇怪的结果。看起来它确实在跟踪,但只是在一定程度上。赢家和输家的console.logs可以从零变为一,但决不
//sets a random goal number, set's player number
var goalNumber = Math.floor(Math.random() * 100) + 1;
var playerNumber = 0;
//if there is no variable for wins or losses in local storage, it is set to zero
//else, the "wins" from local storage is achieved and put into the wins variable in
//the script
if (localStorage.getItem("wins") === null) {
var wins = 0;
} else {
var wins = localStorage.getItem("wins");
}
if (localStorage.getItem("wins") === null) {
var losses = 0;
} else {
var losses = localStorage.getItem("wins");
}
console.log("Wins:" + wins);
console.log("Losses:" + losses);
//gives a random value to blue, green, red, and purple
var blue = Math.floor(Math.random() * 12) + 1;
var green = Math.floor(Math.random() * 12) + 1;
var red = Math.floor(Math.random() * 12) + 1;
var purple = Math.floor(Math.random() * 12) + 1;
//assigns value to the gem pics based on above random numbers
$("#blueGem").attr("value", blue);
$("#greenGem").attr("value", green);
$("#redGem").attr("value", red);
$("#purpleGem").attr("value", purple);
//puts goal number variable in goal number box
$("#goalNumber").text(playerNumber);
//puts player number variable in player box
$("#playerNumber").text(goalNumber);
//puts wins in wins box (ccurrently at zero)
// $("#wins").text(wins);
// //puts losses in losses box
// $("#losses").text(losses);
//when you click one of the gems
$("img").click(function() {
//playerNumber equals whatever it was before plus the value of the gem
playerNumber = playerNumber + parseInt($(this).attr("value"));
if (playerNumber == goalNumber) {
//if the player number meets the goal number,
//a non-existent varaible called wins is incremented.
//see, how do I set up wins, without having it reset every refresh!?
//So maybe check if there's already a value in local storage, and if not,
//assign it to
//zero.
//So at the top of the page "if wins in localstorage = true, wins =
//localStorage.getItem(wins)"
//else, wins = 0.
wins++;
localStorage.setItem("wins", wins);
var x = screen.width / 2 - 500 / 2;
var y = screen.height / 2 - 350 / 2;
window.open("win.html", "_blank", 'height=385,width=500,left=' + x + ',top=' + y);
//if you win, goal number is reset, player number is reset, and so are gem
//values
goalNumber = Math.floor(Math.random() * 120) + 1;
playerNumber = 0;
blue = Math.floor(Math.random() * 12) + 1;
green = Math.floor(Math.random() * 12) + 1;
red = Math.floor(Math.random() * 12) + 1;
purple = Math.floor(Math.random() * 12) + 1;
$("#blueGem").attr("value", blue);
$("#greenGem").attr("value", green);
$("#redGem").attr("value", red);
$("#purpleGem").attr("value", purple);
}
if (playerNumber > goalNumber) {
losses++;
localStorage.setItem("losses", losses);
var x = screen.width / 2 - 500 / 2;
var y = screen.height / 2 - 350 / 2;
window.open("loss.html", "_blank", 'height=385,width=500,left=' + x + ',top=' + y);
//if you lose, all those numbers are reset as well.
goalNumber = Math.floor(Math.random() * 100) + 1;
playerNumber = 0;
blue = Math.floor(Math.random() * 10) + 1;
green = Math.floor(Math.random() * 10) + 1;
red = Math.floor(Math.random() * 10) + 1;
purple = Math.floor(Math.random() * 10) + 1;
$("#blueGem").attr("value", blue);
$("#greenGem").attr("value", green);
$("#redGem").attr("value", red);
$("#purpleGem").attr("value", purple);
}
//this displays the playerNumber and goalNumber in their appropriate divs
//after each click
$("#goalNumber").text(playerNumber);
$("#playerNumber").text(goalNumber);
// $("#wins").text(wins);
// $("#losses").text(losses);
//this extracts them from local storage to be printed.
$("#wins").text(localStorage.getItem("wins"));
$("#losses").text(localStorage.getItem("losses"));
//now the problem is once you hit refresh, wins and losses go back to zero.
//Is that because
//the computer starts reading from the top again?
});
$("button").click(function() {
confirm("Are you sure you want to delete your stats?");
if (confirm) {
localStorage.clear();
}
})
localstorage将东西另存为字符串,我认为您应该解析它 顺便说一句
var losses = localStorage.getItem("wins");
似乎是复制粘贴错误(应该是“丢失”)
localstorage将东西另存为字符串,我认为您应该解析它 顺便说一句
var losses = localStorage.getItem("wins");
似乎是复制粘贴错误(应该是“丢失”)
你能把你的代码缩小到那些给你带来错误的部分吗?我没有收到错误,也不确定哪里出错。您正在交替使用变量和
getItem()
。保持一致并存储每个更新。换句话说,不要执行$(“#wins”).text(localStorage.getItem(“wins”)代码>执行<代码>美元(“#wins”)。文本(wins)代码>谢谢charlietfl。那…有帮助。对于“Clear Stats”函数,它似乎起作用。这仍然在起作用,但我的大脑需要休息一下。你能把你的代码缩小到那些给你带来错误的部分吗?我没有收到错误,也不确定哪里出错。您正在交替使用变量和getItem()
。保持一致并存储每个更新。换句话说,不要执行$(“#wins”).text(localStorage.getItem(“wins”)代码>执行<代码>美元(“#wins”)。文本(wins)代码>谢谢charlietfl。那…有帮助。对于“Clear Stats”函数,它似乎起作用。那还是有问题,但我的大脑需要休息一下。