[英]How to save the state in Localstorage?
早上好谁正在阅读此消息
我对编程还是比较陌生,我有一个问题......我做了一个导航栏:body > div > nav > div > ul > li*10
我在 CSS 中完成了运动
//Barra de Navegacion
const list = document.querySelectorAll('.list');
function activeLink(){
list.forEach((item)=>
item.classList.remove('active'));
this.classList.add('active');
if(list.classlist.contains('active')){
localStorage.setItem('on','true');
} else{
localStorage.setItem('on','false');
}
};
if (localStorage.getItem('on') === 'true'){
list.classList.add('active');
} else {
list.classList.remove('active');
};
list.forEach((item)=>
item.addEventListener('click',activeLink));
问题是当我刷新页面或 go 到它的另一部分时,它不会保存更改。 我怎么能用本地存储呢?
我尝试了几种方法,但我找不到方法
非常感谢您提前
我认为这段代码太低了。
if (localStorage.getItem('on') === 'true'){
list.classList.add('active');
} else {
list.classList.remove('active');
};
您应该在页面加载时立即设置此设置,之后立即
const list = document.querySelectorAll('.list');
所以列表从一开始就有正确的类。
我怀疑使用 localStorage 是实现您想要做的事情的正确方法。 我建议每个页面在打开时都应突出显示其链接。 这可以通过手动向每个页面的链接添加类来实现,记住导航中的链接不会那么多。
不确定您要使用这部分代码实现什么,但您使用的语法是正确的。 下面是一些使用本地存储 API的示例来重复。
您可以使用以下语法将键值对保存到本地存储:
localStorage.setItem('key', 'value');
您可以使用以下语法检索保存的值:
localStorage.getItem('key');
如果您仍然无法让代码正常工作,您可以尝试打开浏览器的开发人员工具并查看存储。 如果您的开发人员的工具说没有条目保存到本地存储,那么您就知道主要问题是保存键值对。
以下是在 Chrome 中打开开发者工具的方法:
如果您仍然无法使代码正常工作,您应该检查您的浏览器设置,以确保没有启用阻止您的应用程序保存到本地存储的安全设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.