Я пытаюсь определить, как я могу сэкономить сворачиваемое состояние сбрасываемой панели, используя $.cookie.
Этот вопрос был полезен до сих пор, но все еще не хватает конечного решения.
Любые решения, которые я нашел до сих пор, сохранили только последнюю свернутую панель, поэтому, когда страница перезагружается, единственная сохраненная панель является последней.
Мне нужно сохранить все панели, которые были свернуты, а не только один.
Ссылка в плагин jCookie на Github.
Ссылка для демонстрации на JSFiddle
UPDATE
Было высказано предположение, что LocalStorage является более подходящим решением для того, чего я пытаюсь достичь. Если вы можете прокомментировать, почему и что такое локальное хранилище, это было бы высоко оценено.
ОБНОВЛЕНИЕ 2
из-за предположения, что локальное хранилище будет улучшением по сравнению с использованием файлов cookie для этой проблемы. Выбранный ответ основывался на этом. Однако, как упоминалось Робин, есть недостатки в использовании этого метода на сайтах HTTPS.
HTML
<div class="panel panel-default">
<div data-toggle="collapse" data-target="#panel1" class="panel-heading collapsed">
<h4 class="panel-title">
<a> Panel 1 </a>
</h4>
</div>
<div id="panel1" class="panel-collapse collapse">
<div class="panel-body">
</div>
</div>
</div>
<div class="panel panel-default">
<div data-toggle="collapse" data-target="#panel2" class="panel-heading collapsed">
<h4 class="panel-title">
<a> Panel 2 </a>
</h4>
</div>
<div id="panel2" class="panel-collapse collapse">
<div class="panel-body">
</div>
</div>
</div>
<div class="panel panel-default">
<div data-toggle="collapse" data-target="#panel3" class="panel-heading collapsed">
<h4 class="panel-title">
<a> Panel 3 </a>
</h4>
</div>
<div id="panel3" class="panel-collapse collapse">
<div class="panel-body">
</div>
</div>
</div>
JQuery
$(".panel .panel-collapse").on('shown.bs.collapse', function ()
{
var active = $(this).attr('id');
$.cookie('activePanelGroup', active);
});
$(".panel .panel-collapse").on('hidden.bs.collapse', function ()
{
$.removeCookie('activePanelGroup');
});
var last = $.cookie('activePanelGroup');
if (last != null)
{
//remove default collapse settings
$(".panel .panel-collapse").removeClass('in');
//show the account_last visible group
$("#" + last).addClass("in");
}