我想用slideToggle做一个多个垂直菜单,并将切换的状态存储在本地存储中,我不明白为什么状态不被存储。
我发现这个例子(https://codepen.io/johnyrodni/pen/VVMXJx)是有效的,但是当我试图把它放在我真正需要的地方(https://codepen.io/azyme/pen/PrGNpW)时,没有更多的本地存储。
<div id="dropdown-1">
<div class="heading">
Click me
</div>
<ul class="content">
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</div>
<div id="dropdown-2">
<div class="heading">
Click me
</div>
<ul class="content">
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</div>$(document).ready(function() {
var openTabs = [];
$(".content").hide();
$(".heading").click(function(){
var $this = $(this),
selector = $this.parent().attr('id') + ' .heading';
if ($(this).next('.content').is(':visible'))
{
var pos = openTabs.indexOf(selector);
openTabs.splice(pos, 1);
}
else
{
openTabs.push(selector);
}
localStorage.openTabs = openTabs.join(',');
$this.next(".content").slideToggle();
});
if (localStorage.openTabs)
$(localStorage.openTabs).click();
});我希望切换的状态将存储在本地存储中
发布于 2019-06-20 00:24:22
这个应该可以解决这个问题。
替换此行:
localStorage.openTabs = openTabs.join(',');有了这个:
localStorage.setItem('openTabs', JSON.stringify(openTabs.join(',')))还有这一条:
if (localStorage.openTabs)
$(localStorage.openTabs).click();有了这个:
if (localStorage.hasOwnProperty('openTabs'))
$(JSON.parse(localStorage.getItem('openTabs'))).click();https://stackoverflow.com/questions/56671995
复制相似问题