Страница 1 из 2
Помогите с jQuery и Cookies
Добавлено: 14 авг 2014, 12:38
Alecto
Есть следующий код.
скрипт скрывает/показывает блок.
надо записать текущее состояние: показан/скрыт в кукис (в идеале еще чтобы кукис хранился 360 дней, но пока до этого не дошел)
Код: Выделить всё
(function ($) { // Avoid conflicts with other libraries
var i = $.cookie("extended_menu_show-hide");
$('#showHideContent').click(function(){
i = 1 - i;
$.cookie("extended_menu_show-hide", i);
if ( i == 1) {
$("#extended_menu").show();
$("#leavesearch_btn").show();
} else {
$("#extended_menu").hide();
$("#leavesearch_btn").hide();
}
return false;
});
})(jQuery); // Avoid conflicts with other libraries
кукис вроде бы создается (покрайней мере браузер его видит), поидее он читается. а вот дальше - проблемы.
как и где передать его в переменную...
вобщем с чтением - не работает.
помогите пожалуйста.
Помогите с jQuery и Cookies
Добавлено: 14 авг 2014, 12:41
Татьяна5
http://htmlbook.ru/html5/storage - и проще, и передачи данных на сервер нет
Помогите с jQuery и Cookies
Добавлено: 14 авг 2014, 12:50
Alecto
Татьяна5 писал(а):и проще
ну это как сказать...
прочитал, все буквы знаю, слова понимаю... но прозрение не пришло.
Помогите с jQuery и Cookies
Добавлено: 14 авг 2014, 13:02
Alecto
щас буду пробовать
Помогите с jQuery и Cookies
Добавлено: 14 авг 2014, 13:52
Alecto
Код: Выделить всё
(function ($) { // Avoid conflicts with other libraries
var i = window.localStorage.getItem('extended_menu_hide_show');
$('#showHideContent').click(function(){
if ( i == 1) {
$("#extended_menu").show("slow");
} else {
$("#extended_menu").hide("slow");
}
i = 1 - i;
localStorage.setItem('extended_menu_hide_show', 'i');
return false;
});
})(jQuery); // Avoid conflicts with other libraries
то ли не работает, то ли я чего-то не понимаю.
и, все эта ерунда работает только по клику на кнопке, как выполнить условие и скрыть/показать блок при загрузке страницы?
Помогите с jQuery и Cookies
Добавлено: 14 авг 2014, 13:59
Татьяна5
fomenkoandrey писал(а):Код: Выделить всё
window.localStorage.getItem('extended_menu_hide_show')
Откуда
window.?
fomenkoandrey писал(а):при загрузке страницы
http://jquery-docs.ru/events/ready/
Помогите с jQuery и Cookies
Добавлено: 14 авг 2014, 14:05
Alecto
Татьяна5 писал(а):Откуда window.?
из примера Алг.
Код: Выделить всё
var i = localStorage.getItem('extended_menu_hide_show');
$('#showHideContent').click(function(){
i = 1 - i;
if ( i == 1) {
$("#extended_menu").show("slow");
} else {
$("#extended_menu").hide("slow");
}
localStorage.setItem('extended_menu_hide_show', 'i');
return false;
});
так срабатывает 1 раз.
с таким варом работает.
ничего не понимаю.
Помогите с jQuery и Cookies
Добавлено: 14 авг 2014, 14:13
Alecto
разместил эту же функцию в
блок стал скрываться при загрузке, но после этого скрытие/открытие не работает.
добавил еще проверку
все равно срабатывает 1 раз.
Помогите с jQuery и Cookies
Добавлено: 14 авг 2014, 15:11
Alecto
с помощью Алг разобрался
Помогите с jQuery и Cookies
Добавлено: 14 авг 2014, 19:52
Alecto
Подскажите, почему не срабатывает условие:
Код: Выделить всё
localStorage.clear();
var I = localStorage.getItem('extended_menu_hide_show');
if (I == 'null' || isNaN(I)) { I = 1 };
alert(I);
хочу проверить, как будет работать условие, в случае отсутсвия сохранненого параметра.
для этого clear - вычищаю сохраненный параметр перед загрузкой из хранилища.
т.е. I становится null
далее сравниваю, и если I не определен - присваиваю ему 1.
но, условие почему-то не срабатывает, аллерт выдает null вместо 1.
еще пробовал
I == 'null',
I == '',
I == "" - результат null.
где я ошибся?