【发布时间】:2021-05-21 22:48:02
【问题描述】:
我使用materializecss 框架制作了前端(HTML)。我正在使用他们的Collapsible 元素,单击时会展开。
在某些元素中是表单,提交后会触发网页的刷新。页面重新加载后,可折叠元素全部折叠。此外,当用户离开页面然后返回时,所有元素都会折叠。
我正在尝试找到一种方法来“记住”哪个元素是打开的。我在想最好将当前打开的元素存储在本地内存中,然后在重新加载时使用访问权限,然后使用他们的 .open() 方法....但我不知道如何在本地存储上执行此操作.
编辑:
添加我当前使用本地存储的尝试
html
<ul class="collapsible">
<li>
<div class="collapsible-header">first tab header</div>
<div class="collapsible-body"><span>first tab body</span></div>
</li>
<li>
<div class="collapsible-header">second tab header</div>
<div class="collapsible-body"><span>second tab body</span></div>
</li>
</ul>
javascript
<script>
function activate(n){
//open collapsible element, the tab # being the variable passed in
$(".collapsible").open(n)
}
function storeElem(n){
window.localStorage.setItem('openElem', n)
}
$(document).ready(function(){
var instance = M.Collapsible.init(elem, {
accordion: false,
onOpenStart: storeElem(n)
});
var previousElem = window.localStorage.getItem('openElem')
if (previousElem) {
activate(previousElem)
}
})
</script>
【问题讨论】:
-
localStorage是正确的方法。显示您尝试过的内容。 -
编辑帖子以添加我当前的尝试。
标签: javascript html materialize