10.02.2017, 17:44
|
|
Аспирант
|
|
Регистрация: 10.01.2017
Сообщений: 36
|
|
в JSON - это как? Можно пример?
|
|
10.02.2017, 18:30
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
var _mem = localStorage;
$(function() {
var itm = $(".wrapper:first").attr('id'),
btn = $(".btn"),
idx = !!_mem['items'] && JSON.parse(_mem['items']) || {},
a = $(".block1 a").on("click", function() {
a.not($(this).addClass("eps")).removeClass("eps");
$(".eps").parent().css( "display", "block");
idx[itm] = a.index(this);
_mem['items'] = JSON.stringify(idx);
});
if(idx) a.eq(idx[itm]).trigger('click');
});
Последний раз редактировалось laimas, 10.02.2017 в 18:36.
|
|
10.02.2017, 18:45
|
|
Аспирант
|
|
Регистрация: 10.01.2017
Сообщений: 36
|
|
Сообщение от laimas
|
var _mem = localStorage;
$(function() {
var itm = $(".wrapper:first").attr('id'),
btn = $(".btn"),
idx = !!_mem['items'] && JSON.parse(_mem['items']) || {},
a = $(".block1 a").on("click", function() {
a.not($(this).addClass("eps")).removeClass("eps");
$(".eps").parent().css( "display", "block");
idx[itm] = a.index(this);
_mem['items'] = JSON.stringify(idx);
});
if(idx) a.eq(idx[itm]).trigger('click');
});
|
Благодарю! То есть это наиболее оптимальный вариант?
И не могли бы Вы подсказать, как удалить запоминание на конкретной странице при клике по <button id="zapominalka">?
Извиняюсь, но я правда ничего не понимаю в JSON, только начинаю вникать в эту тему. Своими силами уже весь день прошёл, можно сказать, впустую.
|
|
10.02.2017, 19:23
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Nezumi.May
|
То есть это наиболее оптимальный вариант?
|
Ну а как еще?
Сообщение от Nezumi.May
|
как удалить запоминание на конкретной странице при клике по <button id="zapominalka">?
|
$('#zapominalka').click(function() {
delete idx[id];
//где id это ключ который надо удалить,
//если речь о текущей странице
//значит это будет ранее определенная переменная itm
//если выбирать из набора страниц, значит надо передавать в это обработчик ключ старнцы
//или ключи, если выбор из списка
_mem['items'] = JSON.stringify(idx);
})
Последний раз редактировалось laimas, 10.02.2017 в 19:25.
|
|
10.02.2017, 20:19
|
|
Аспирант
|
|
Регистрация: 10.01.2017
Сообщений: 36
|
|
Большое спасибо! После долгих мучений наконец-то получилось так, как нужно.
|
|
10.02.2017, 20:28
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Nezumi.May
|
После долгих мучений наконец-то получилось так, как нужно.
|
Хотя конечно объем хранимых данных небольшой, но "мода" запихнуть все в хранилище набирает обороты, и кто его знает, вдруг более ушлые заняли своим все хранилище. ) По логике вещей это нужно проверять.
Вообще-то локальное хранилище не единственное у браузера, есть еще и сессионное.
|
|
10.02.2017, 20:40
|
|
Аспирант
|
|
Регистрация: 10.01.2017
Сообщений: 36
|
|
Сообщение от laimas
|
Хотя конечно объем хранимых данных небольшой, но "мода" запихнуть все в хранилище набирает обороты, и кто его знает, вдруг более ушлые заняли своим все хранилище. ) По логике вещей это нужно проверять.
Вообще-то локальное хранилище не единственное у браузера, есть еще и сессионное.
|
Эта примочка "временная" для тех случаев, когда случайно перешёл на другую страницу и потерял данные. Статьи пишут давно, а информации про это дело очень мало. Вроде как 5мб на каждый сайт, каждому браузеру, хранить такие данные как в моём случае (в несколько символов) кажется более чем достаточно, разве нет?
Впрочем, не уверена, что на каждый сайт 5мб, но кто-то такую информацию распространил. А про сессионные совсем ничего не слышала.
|
|
10.02.2017, 21:30
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Nezumi.May
|
Вроде как 5мб на каждый сайт
|
Да, правда IE под него выводит вроде бы 10. Ну если более нет идей впихнуть на все 100% в хранилище, тогда да, можно не бояться. )
Сессионное хранилище (sessionStorage) тоже самое за исключением того, что не зависит от домена и работает в приделах окна, то есть открыли окно - сессия, закрыли окно - сессия умерла. Для одной и той же страницы открытой в разных окнах/вкладках будет создаваться своя сессия. Поэтому если временно нужно, то лучше сессионное хранилище. Все методы работы с ним те же самые что и у локального хранилища.
|
|
13.02.2017, 22:05
|
|
Аспирант
|
|
Регистрация: 10.01.2017
Сообщений: 36
|
|
laimas, Спасибо за разъяснения. sessionStorage самое то использовать для запоминания в форме комментариев или на форуме. Надо взять на заметку.
|
|
|
|