即使用户回来,我也试图让div div消失并保持消失。它似乎没有做我想要的。当我按下按钮时,没有任何反应。甚至localStorage的价值都没有变化......
localStorage.done = localStorage.done || false;
$('#myButton').addEventListener('click', function() {
if (!localStorage.done) {
localStorage.done = true;
$('#myDiv').style.display = "none";
}
});
答案 0 :(得分:6)
localStorage
的代码实际上正在运行(即使它建议使用其getter / setter方法而不是直接属性访问)。
你的问题是:
$('#myButton').addEventListener('click', function() {
jQuery不知道你想要调用.addEventListener
.bind()
localStorage.done = localStorage.done || false;
$('#myButton').bind('click', function() {
if (!localStorage.done) {
localStorage.done = true;
$('#myDiv').hide();
}
});
答案 1 :(得分:1)
localStorage仅存储字符串。因此,localStorage.done = false序列化为“false”。以下代码将解决您的问题(请参阅JSFiddle):
localStorage.done = localStorage.done || "false";
document.getElementById('myButton').addEventListener('click', function() {
if (localStorage.done == "false") {
localStorage.done = "true";
document.getElementById('myDiv').style.display = "none";
}
});
注意,为了避免与jQuery混淆,我使用标准DOM“getElementById”。您也可以考虑使用“0”和“1”代替“true”和“false”。
虽然W3 Specification中没有此限制,但它适用于当前浏览器。有关详细信息,请参阅this post。快乐的编码!