gpt4 book ai didi

javascript - 本地存储没有存储多个slideToggle的状态

转载 作者:行者123 更新时间:2023-12-02 23:27:31 26 4
gpt4 key购买 nike

我想使用 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();
});

我希望切换的状态将存储在本地存储中

最佳答案

这应该可以修复它。

替换这一行:

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();

关于javascript - 本地存储没有存储多个slideToggle的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56671995/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com