在页面刷新/导航时保留 Twitter Bootstrap 折叠状态 [英] Retain Twitter Bootstrap Collapse state on Page refresh/Navigation
问题描述
我正在使用 Bootstrap折叠"插件为一长串链接制作手风琴.手风琴体标签包括折叠",因此当页面加载时所有组都折叠.当您打开一个组并单击一个链接时,它会将您带到一个新页面以查看一些详细信息,然后您单击返回链接或浏览器返回以返回到列表.不幸的是,当您返回时,手风琴又回到了折叠状态,您必须再次打开该组才能找到您所在的位置.我预计会有很多这种来回导航,这种行为会令人沮丧.
有什么方法可以保留用户的位置并返回到它,或者只是防止页面重新加载或 javascript 再次触发.
我认为解决方案可能是这样的,但不确定.Twitter 引导程序:向打开的手风琴标题添加一个类
您可以通过 cookie 轻松解决此问题.有很多简化的库,例如 https://github.com/carhartl/jquery-cookie,因为我在下面的例子:
<script src="https://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js"></script>
将以下代码添加到脚本部分(#accordion2
指的是修改后的 twitter bootstrap 示例,我在后面列出)
$(document).ready(function() {var last=$.cookie('activeAccordionGroup');如果(最后!=空){//删除默认的折叠设置$("#accordion2 .collapse").removeClass('in');//显示最后一个可见组$("#"+last).collapse("show");}});//当显示组时,将其保存为活动的手风琴组$("#accordion2").bind('shown', function() {var active=$("#accordion2 .in").attr('id');$.cookie('activeAccordionGroup', 活动)});
<div class="accordion-group"><div class="accordion-heading"><a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne">可折叠组项目 #1</a><div id="collapseOne" class="accordion-body 折叠在"><div class="accordion-inner">链接:<a href="http://google.com">google.com</a>
<div class="accordion-group"><div class="accordion-heading"><a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseTwo">可折叠组项目 #2</a>