Выдача jquery show, hide, slidetoggle с cookie

0

Здесь мой HTML

<!-- this is my link -->
<a href='javascript:void(0);' class='show_hide'>Show Hide</a>
<!-- This is my show hide content -->
<div class='slidingDiv'> ..................Here my content...............</div>

Я начинаю JQuery. Я просто пытаюсь создать панель слайдов. Я использую parent().next() slideToggle() в моей функции slideToggle(). Beacuse Мне нужно показать/скрыть для каждого DIV. Поэтому я пишу этот код....

$(".show_hide").show();
$(".slidingDiv").hide();
$('.show_hide').click(function () {
   $(this).parent().next().slideToggle();
});

Этот код работает хорошо. Но теперь моя проблема в том, что мне нужно cookie для отдыха после обновления. Я пишу этот код

var cook= $.cookie('showdiv');
if(cook=='true')
    $(".slidingDiv").show();
else
    $(".slidingDiv").hide();

    $('.show_hide').on('click', function()
    {
            $(this).parent().next().slideToggle('normal', function(){
                $.cookie('showdiv', $(this).is(':visible'));
            });
    });

Но cookie не работает. Обратите внимание, что я уверен, что я успешно устанавливаю плагин jquery cookie.

Теги:
cookies

2 ответа

0

Если опубликованная ваша HTML-разметка, селектор должен быть $(this).next(".slidingDiv") без родителя.

Код:

var cook = $.cookie('showdiv');
console.log(cook)
if (cook == 'true') $(".slidingDiv").show();
else $(".slidingDiv").hide();

$('.show_hide').on('click', function () {
    $(this).next(".slidingDiv").slideToggle('normal', function () {
        $.cookie('showdiv', $(this).is(':visible'));
    });
});

Демо: http://jsfiddle.net/IrvinDominin/PRDU7/

  • 0
    Хорошо, через 2 часа я получил проблему, а не решение. Обратите внимание, что всегда cookie работают. ваш JS скрипка и мой код показывают только один DIV и ссылку , но есть много .slidingDiv группы для каждого show_hide button.First я говорю без parent() не работает мой код. Во-вторых, у меня есть много кнопок .show_hide . Итак, $(this).parent().next().slideToggle выполняет каждую кнопку .show_hide . Но когда печенье это позволит, все .slidingDiv показывает не конкретная группа .slidingDiv из show_hide кнопки. Таким образом, cookie не может определить, какая кнопка открыта или закрыта. cookie выполнить все кнопки, а не конкретную кнопку .show_hide
0

К сожалению, сохраняя логическое значение в cookie, чтобы проверить, истинно или ложно, вы должны сравнить его как строку в обратном порядке.

Вы проверили с console.log или предупредили о возврате вашего файла cookie?

console.log($.cookie('showdiv'));

Я тестировал и сравнивал, поскольку в строке не было проблем.

Смотрите скрипку

  • 0
    my console.log($.cookie('showdiv')); ложно

Ещё вопросы

Сообщество Overcoder
Наверх
Меню