【发布时间】:2020-01-07 22:31:59
【问题描述】:
下面的 onclick 事件运行良好。我希望在我们重新加载页面后同样的事件也应该起作用。我尝试实现 localStorage 方法,但没有得到预期的输出。
谁能帮我解决这个问题。提前致谢!
我尝试过的脚本:
$("ul li").click(function () {
$('ul li').removeClass("one");
$(this).toggleClass("active");
localStorage.setItem('listItem', 'one');
});
$(document).ready(function(){
if(localStorage.getItem('listItem') == 'one') {
$('ul li').addClass("active");
}
});
$('ul li').click(function(){
$("ul li").removeClass("active");
$(this).addClass("active");
});
ul li.active {
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
【问题讨论】:
-
短语“不适合我”是问题中的一个危险信号 - 您需要定义究竟发生了什么,以及它与您的预期有何不同。特别是在这种情况下,当 Stack Snippets 无法重现您的问题时。一方面,您的点击处理程序可以在文档准备好之前设置,因此
<li>元素实际上并没有设置它。另一方面,重新加载可以将所有项目都涂成红色,因为您不会将选择的元素保存在存储中。还有一种可能性是完全破坏了其他东西,因为您必须更改 Stack Snippet 的代码结构。 -
更新“没有得到预期的输出”也好不到哪里去。请具体说明您的系统确切的行为方式,以及它与您想要的具体的不同之处。例如。 "当我点击第二个
<li>时,它变成红色,但当我重新加载时,所有元素都显示为雷云","当我点击第二个<li>时,我的电脑爆炸了,但我期望看到的是单击的列表项变为红色并且没有任何爆炸”,或类似的。 -
@Saravana 实际上你需要,在页面重新加载后点击 li active 吗?
-
@ShafeelSha 是的。正是
标签: javascript jquery html css local-storage