JavaScript localStorage在首次单击时不工作
我有一个名为category.html的页面。我试图将category的值存储在JavaScript本地存储中,以便将其传递到下一个html页面。我试图将单元格中的clicked元素作为localStorage中category变量的值传递,但在第一次单击时不会这样做。它在第一次点击后工作。我做错了什么JavaScript localStorage在首次单击时不工作,javascript,jquery,html,local-storage,Javascript,Jquery,Html,Local Storage,我有一个名为category.html的页面。我试图将category的值存储在JavaScript本地存储中,以便将其传递到下一个html页面。我试图将单元格中的clicked元素作为localStorage中category变量的值传递,但在第一次单击时不会这样做。它在第一次点击后工作。我做错了什么 函数存储(){ var display=document.getElementById(“结果”); $(“a”)。单击(函数(){ var nameOfCategory=$(this.at
函数存储(){
var display=document.getElementById(“结果”);
$(“a”)。单击(函数(){
var nameOfCategory=$(this.attr(“categoryName”);
nameOfCategory=字符串(nameOfCategory);
if(类型(存储)!=“未定义”){
//贮藏
setItem(“类别”,类别名称);
//取回
var checkLocalStorage=localStorage.getItem(“类别”);
display.innerHTML=“checkLocalStorage变量的值:“+checkLocalStorage+”
”;
//log(“checkLocalStorage变量的值:“+checkLocalStorage”);
}否则{
displayMessage.innerHTML=“对不起,您的浏览器不支持Web存储…”+“
”;
//log(“对不起,您的浏览器不支持Web存储…”);
}
display.innerHTML+=“nameOfCategory变量的值:“+nameOfCategory+”
”;
//log(“nameOfCategory变量的值:“+nameOfCategory”);
});//结束.click函数
}
类别
水果
蔬菜
衣裳
只有在调用store之后,您才能注册单击事件。将调用存储,将设置事件,然后单击事件将起作用,请尝试以下操作:
$(文档).ready(函数(){
var display=document.getElementById(“结果”);
$(“a”)。单击(函数(){
var nameOfCategory=$(this.attr(“categoryName”);
nameOfCategory=字符串(nameOfCategory);
if(类型(存储)!=“未定义”){
//贮藏
setItem(“类别”,类别名称);
//取回
var checkLocalStorage=localStorage.getItem(“类别”);
display.innerHTML=“checkLocalStorage变量的值:“+checkLocalStorage+”
”;
//log(“checkLocalStorage变量的值:“+checkLocalStorage”);
}否则{
displayMessage.innerHTML=“对不起,您的浏览器不支持Web存储…”+“
”;
//log(“对不起,您的浏览器不支持Web存储…”);
}
display.innerHTML+=“nameOfCategory变量的值:“+nameOfCategory+”
”;
//log(“nameOfCategory变量的值:“+nameOfCategory”);
});//结束.click函数
});
这是因为您将其作为函数store()
并在单击
函数activateLink(){
$(“a”)。单击(函数(事件){
event.preventDefault();
var display=document.getElementById(“结果”);
var nameOfCategory=$(this.attr(“categoryName”);
nameOfCategory=字符串(nameOfCategory);
if(类型(存储)!=“未定义”){
//贮藏
setItem(“类别”,类别名称);
//取回
var checkLocalStorage=localStorage.getItem(“类别”);
display.innerHTML=“checkLocalStorage变量的值:“+checkLocalStorage+”
”;
//log(“checkLocalStorage变量的值:“+checkLocalStorage”);
}否则{
displayMessage.innerHTML=“对不起,您的浏览器不支持Web存储…”+“
”;
//log(“对不起,您的浏览器不支持Web存储…”);
}
display.innerHTML+=“nameOfCategory变量的值:“+nameOfCategory+”
”;
//log(“nameOfCategory变量的值:“+nameOfCategory”);
});//结束.click函数
}
激活酶();
没错,@JonathanLonowski我只是认为这是暗示。我将更新代码以反映这一变化。
$(document).ready(function() {
var display = document.getElementById("result");
$("a").click(function() {
var nameOfCategory = $(this).attr("categoryName");
nameOfCategory = String(nameOfCategory);
if (typeof(Storage) !== "undefined") {
// Store
localStorage.setItem("category", nameOfCategory);
// Retrieve
var checkLocalStorage = localStorage.getItem("category");
display.innerHTML = "Value of checkLocalStorage variable: " + checkLocalStorage + "<br>";
//console.log("Value of checkLocalStorage variable: " + checkLocalStorage);
} else {
displayMessage.innerHTML = "Sorry, your browser does not support Web Storage..." + "<br>";
//console.log("Sorry, your browser does not support Web Storage...");
}
display.innerHTML += "Value of nameOfCategory varaible: " + nameOfCategory + "<br>";
//console.log("Value of nameOfCategory varaible: " + nameOfCategory);
}); // end of a.click function
});