плагин jquery cookie - не получается? - PullRequest
3 голосов
/ 03 апреля 2011

Эй, ребята, У меня есть верхняя панель с некоторой важной информацией для моих пользователей на моем веб-сайте (точно так же, как stackoverflow позволяет узнать, когда вы достигли нового значка, вы видите желтую полосу сверху, которую можно закрыть).

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

Поэтому я использую плагин jquery cookie. Есть идеи, почему это не работает?

    var topInfo = $.cookie('topinfo');

    if (topInfo) {
        $('#topBar').hide();
    } else { 
        $('#topBar').show();
    }

    $('#topBar .topBarCloser').click(function() {
        $(this).parent().slideUp({
            duration: 300,
            easing: 'easeOutQuint',
            complete: function() { 
                $(this).remove();
                $.cookie('topinfo', true, { expires: 1000 });
            }
        });
    });

Что я здесь не так делаю! Я установил срок годности на 1000 дней.

Ответы [ 2 ]

3 голосов
/ 21 марта 2012

Еще одна причина, по которой $ .cookie не может работать (jquery.cookie не удаляет cookie) - возможно, не в этом случае, но в общем случае кто-то может взглянуть на эту страницу и получить эту информацию - потому что вы задали его для определенного пути , но пытаетесь удалить его, не задавая путь снова.

Пример:
если вы установите cookie, как это

$.cookie("CookieName", "yourValue", { path: '/' });  

и вы пытаетесь удалить его следующим образом:

$.cookie("CookieName",null);  

что не будет работать, вы должны написать:

$.cookie("CookieName", null, { path: '/'});  

или какой бы путь вы ни выбрали ранее.

2 голосов
/ 03 апреля 2011

Я не знаю, какой плагин cookie вы используете, но если он такой: http://plugins.jquery.com/files/jquery.cookie.js.txt

Тогда он говорит:

@param String name The name of the cookie.
@param String value The value of the cookie.

Так что значение должно бытьстрока - вы установили его на логическое значение.Это, вероятно, будет означать, что topInfo всегда будет true (потому что false как строка будет «false», что верно!) Попробуйте установить для cookie значение строки:

$.cookie('topinfo', "on", { expires: 1000 });

// and then...
if (topInfo === "on") {
  ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...