Страница 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 раз.

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

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

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

Добавлено: 14 авг 2014, 14:13
Alecto
разместил эту же функцию в

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

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

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

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

				if ( I == 'undefind' ) { I = 0 }	
все равно срабатывает 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.

где я ошибся?