Помогите с jQuery и Cookies

Даже на тестовом форуме нельзя без флейма и флуда? Тогда вам сюда ;)
Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Помогите с jQuery и Cookies

Сообщение 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
кукис вроде бы создается (покрайней мере браузер его видит), поидее он читается. а вот дальше - проблемы.
как и где передать его в переменную...
вобщем с чтением - не работает.

помогите пожалуйста.

Аватара пользователя
Татьяна5
Сообщения: 570
Зарегистрирован: 02 фев 2014, 15:05

Помогите с jQuery и Cookies

Сообщение Татьяна5 »

http://htmlbook.ru/html5/storage - и проще, и передачи данных на сервер нет

Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Помогите с jQuery и Cookies

Сообщение Alecto »

Татьяна5 писал(а):и проще
ну это как сказать...
прочитал, все буквы знаю, слова понимаю... но прозрение не пришло.

Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Помогите с jQuery и Cookies

Сообщение Alecto »

щас буду пробовать

Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Помогите с jQuery и Cookies

Сообщение 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
то ли не работает, то ли я чего-то не понимаю.
и, все эта ерунда работает только по клику на кнопке, как выполнить условие и скрыть/показать блок при загрузке страницы?

Аватара пользователя
Татьяна5
Сообщения: 570
Зарегистрирован: 02 фев 2014, 15:05

Помогите с jQuery и Cookies

Сообщение Татьяна5 »

fomenkoandrey писал(а):

Код: Выделить всё

window.localStorage.getItem('extended_menu_hide_show')
Откуда window.?
fomenkoandrey писал(а):при загрузке страницы
http://jquery-docs.ru/events/ready/

Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Помогите с jQuery и Cookies

Сообщение 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 раз.

Код: Выделить всё

    var i = 1;
с таким варом работает.
ничего не понимаю.

Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Помогите с jQuery и Cookies

Сообщение Alecto »

разместил эту же функцию в

Код: Выделить всё

$(document).ready(function(){
    
блок стал скрываться при загрузке, но после этого скрытие/открытие не работает.

добавил еще проверку

Код: Выделить всё

				if ( I == 'undefind' ) { I = 0 }	
все равно срабатывает 1 раз.

Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Помогите с jQuery и Cookies

Сообщение Alecto »

с помощью Алг разобрался :)

Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Помогите с jQuery и Cookies

Сообщение 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.

где я ошибся?
Последний раз редактировалось Alecto 14 авг 2014, 19:57, всего редактировалось 1 раз.

Ответить