Я пытаюсь использовать sessionStorage состояние отображения (блок / нет) элемента div filter-panel--content
при обновлении моего сайта. У меня есть несколько div с этим классом. Внутри этого div есть несколько флажков, которые обновляют сайт после изменения состояния. Это прекрасно работает, но когда мой сайт обновляется, этот div остается закрытым: «display: none». Но я пытаюсь выполнить сессию для сохранения состояния отображения.
Это вырезание моей боковой панели:
<div class="filter-panel filter--property facet--property" data-filter-type="value-list" data-field-name="f">
<div class="filter-panel--flyout" style="border:none;">
<div id="label-it" class="label-it"><label class="filter-panel--title"><h3 class="rums">LED</h3><div id="klapp" class="klapp"></div></label></div>
<div class="filter-panel--content">
[...]
</div>
<div class="filter-panel filter--property facet--property" data-filter-type="value-list" data-field-name="f">
<div class="filter-panel--flyout" style="border:none;">
<div id="label-it" class="label-it"><label class="filter-panel--title"><h3 class="rums">Housing style</h3><div id="klapp" class="klapp"></div></label></div>
<div class="filter-panel--content">
[...]
</div>
При нажатии на div "label-it", div "filter-panel--content "переключает display:none
и display:block
, внутри" filter-panel - content "есть несколько флажков, которые обновляют сайт.
И в этот момент я хочу сохранить свойство отображения" filter-panel - content "
Это мое первое решение для получения sessionStorage
:
sessionStorage.setItem("filterstate", $(this).closest(".filter-panel--flyout").find(".filter-panel--content div").css("display"));
Это мое первое решение для установки sessionStorage
, оно в функции переключения:
$('.label-it').click(function() {
$(this).find(".filter-panel--title div").toggleClass('klapp klappe');
$(this).closest(".filter-panel--flyout").find(".filter-panel--content div").toggle(350)
sessionStorage.setItem("filterstate", $(this).closest(".filter-panel--flyout").find(".filter-panel--content div").css("display"));
});
Мне нужна помощь:)
2nd Try: Я пытался реализовать localStorage
, к сожалению, это не работает .. нужна помощь ..
SET:
$('.label-it').click(function() {
$(this).find(".filter-panel--title div").toggleClass('klapp klappe');
$(this).closest(".filter-panel--flyout").find(".filter-panel--content div").toggle(350)
var panel = $(this).closest(".filter-panel--flyout").find(".filter-panel--content div");
if ( panel.style.display === "block") {
localStorage.setItem("isOpen", true);
} else {
localStorage.setItem("isOpen", false);
}
});
GET:
$(document).ready(function() {
var isOpen = localStorage.getItem("isOpen");
if (isOpen === "true") {
$(this).closest(".filter-panel--flyout").find(".filter-panel--content div").css('display', 'block');
} else {
$(this).closest(".filter-panel--flyout").find(".filter-panel--content div").css('display', 'none');
}
});