Запоминать посещенную категорию на сайте
Здравствуйте.
На сайте есть некий каталог с категориями товаров и есть меню с этими самыми категориями. Когда пользователь заходит в какой-нибудь товар, родительская категория появляется в развернутом виде, т.е. добавляется css класс catalog-nav__item_active. Это хорошо, но на сайте есть также другие страницы (Новости, Контакты и т.п.). Стоит задача: если пользователь переходит на эти страницы со страницы каталога, то категория каталога в меню должна оставаться открытой (т.е. с классом catalog-nav__item_active). Насколько я понимаю, подобное можно сделать через куки - id последней активной категории записывается в переменную и затем ему присваевается класс на любых страницах. Но дальше теории дело не пошло. Прошу помощи. <ul class="catalog-nav__list"> <li id="cat1" class="catalog-nav__item catalog-nav__item_active"> <span class="catalog-nav__link js-nav-catalog-button wall">Категория 1</span> <ul class="catalog-nav__subnav"> <li class="catalog-nav__subnav-item first level1"> <a class="catalog-nav__subnav-link" href="#">Страница 1-1</a> </li> <li class="catalog-nav__subnav-item level1"> <a class="catalog-nav__subnav-link" href="#">Страница 1-2</a> </li> <li class="catalog-nav__subnav-item level1"> <a class="catalog-nav__subnav-link" href="#">Страница 1-3</a> </li> <li class="catalog-nav__subnav-item level1"> <a class="catalog-nav__subnav-link" href="#">Страница 1-4</a> </li> </ul> </li> <li id="cat2" class="catalog-nav__item"> <span class="catalog-nav__link js-nav-catalog-button wall">Категория 2</span> <ul class="catalog-nav__subnav"> <li class="catalog-nav__subnav-item first level1"> <a class="catalog-nav__subnav-link" href="#">Страница 2-1</a> </li> <li class="catalog-nav__subnav-item level1"> <a class="catalog-nav__subnav-link" href="#">Страница 2-2</a> </li> <li class="catalog-nav__subnav-item level1"> <a class="catalog-nav__subnav-link" href="#">Страница 2-3</a> </li> <li class="catalog-nav__subnav-item level1"> <a class="catalog-nav__subnav-link" href="#">Страница 2-4</a> </li> </ul> </li> <li id="cat3" class="catalog-nav__item"> <span class="catalog-nav__link js-nav-catalog-button wall">Категория 3</span> <ul class="catalog-nav__subnav"> <li class="catalog-nav__subnav-item first level1"> <a class="catalog-nav__subnav-link" href="#">Страница 3-1</a> </li> <li class="catalog-nav__subnav-item level1"> <a class="catalog-nav__subnav-link" href="#">Страница 3-2</a> </li> <li class="catalog-nav__subnav-item level1"> <a class="catalog-nav__subnav-link" href="#">Страница 3-3</a> </li> <li class="catalog-nav__subnav-item level1"> <a class="catalog-nav__subnav-link" href="#">Страница 3-4</a> </li> </ul> </li> </ul> |
Цитата:
https://learn.javascript.ru/localstorage |
Цитата:
$(document).ready(function(){
if (document.querySelector('.catalog-nav__item_active') != null) {
let firstBlock = document.querySelector( ".catalog-nav__item_active" );
var myid = firstBlock.id;
sessionStorage.setItem('myid', myid);
}
else if(window.location.pathname=='/'){ sessionStorage.removeItem('myid'); }
else {
var myid = sessionStorage.getItem('myid');
if (document.getElementById(myid)) {
var element = document.getElementById(myid);
element.classList.add("catalog-nav__item_active", "current");
}
}
});
|
Цитата:
А сами строки могут иметь довольно сложную структуру данных. Например можно сложный объект или массив перевести в json и сохранить. Потом прочитать, преобразовать в данные и уже с ними работать дальше... |
| Часовой пояс GMT +3, время: 15:18. |