Сохранение данных активного класса в локальном хранилище браузера - PullRequest
1 голос
/ 29 мая 2020

Я пытаюсь сохранить активный класс нажатой ссылки в localStorage, когда перехожу на другую страницу. Как это сделать?

<div id="collapse2" class="panel-collapse collapse">
  <ul class="list-group">
    <li class="list-group-item active" style="background-color: #394263; color: white"><a id="a" style="color: white">A</a></li>
    <li class="list-group-item" style="background-color: #394263; color: white"><a id="p" style="color: white">P</a></li>
    <li class="list-group-item" style="background-color: #394263; color: white"><a id="s" style="color: white">S</a></li>
  </ul>
</div>

Ответы [ 2 ]

2 голосов
/ 31 мая 2020

Создать идентификатор для каждого списка ..

<body onload = "check_storage()">
<div id="collapse2" class="panel-collapse collapse">
<ul class="list-group">
  <li class="list-group-item active" id="id1" onclick= "active("id1")"><a id="a" style="color: white">A</a</li>
  <li class="list-group-item" id = "id2" onclick = "active("id2")"><a id="p" style="color: white">P</a></li>
  <li class="list-group-item" id = "id3" onclick = "active("id3")"><a id="s" style="color: white">S</a></li>
</ul>
</div>

В JavaScript создать функцию для хранения идентификатора в локальном хранилище

//onload of your page this will get called
 function check_storage() {
    //check if there is any value in localStorage
if (localStorage.getItem("listId") != null) {
    //get that value
    var val= localStorage.getItem("listId");
    console.log(val);
    setActive(val); //call function
     }
     }

 function active(id) {
localStorage.removeItem('listId');//clear previous data
localStorage.setItem("listId", id);//add data to storage
console.log(id);
      }

 function setActive(value) {
document.getElementById(value).classList.value = "list-group-item active";
    }

При загрузке тела страницы он проверяет идентификатор в localstorage и делает этот идентификатор активной группой. После вызова активной функции он очищает ранее сохраненные данные и добавляет текущий идентификатор в локальное хранилище.

0 голосов
/ 29 мая 2020

Предполагая, что каждый a имеет id, вы можете установить его с помощью Storage.setItem:

localStorage.setItem(
  'activeListGroupItem',
  $('#collapse2 .list-group-item.active a').attr('id')
);

Затем вы можете получить его и применить обратно с помощью Storage.getItem:

$('#' + localStorage.getItem('activeListGroupItem'))
  .parent().addClass('active');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...