我想我的手风琴按钮被点击时仍然是当前的
状态,即使在刷新页面或转到新页面之后。

<div>
    <a onClick="AccFunc('BTN1')" href="#">Releases</a>
    <div id="BTN1">
         <a>January</a>
         <a>December</a>
    </div>
</div>

<script>
function AccFunc(id) {
    var x = document.getElementById(id);
    $(x).toggle();
    var isVisible = $(x).is(":visible");
    localStorage.setItem('visible', isVisible);
}
// stored in localStorage as string, `toggle` needs boolean
var isVisible = localStorage.getItem('visible') === 'false' ? false : true;
$(x).toggle(isVisible);
</script>

最佳答案

Javascript正在检查localStorage,并试图在DOM准备好之前更改它,因此需要添加代码以等待DOM准备好。此外,该代码不知道x是什么。
我在小提琴里把它改成了下面的(https://jsfiddle.net/jupjh7hL/6/),它按我想的那样工作。
$(document).ready(function(){ var isVisible = localStorage.getItem('visible') === 'false' ? false : true; $('#BTN1').toggle(isVisible);})

关于javascript - 即使在刷新或转移页面后仍保持 Accordion 状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48858653/

10-16 13:38