Проверьте cookie и addClass, но это слишком медленно

В функции загрузки окна я проверяю, есть ли файл cookie, и добавляю класс css, чтобы скрыть элемент. Но это не достаточно быстро, при открытии сайта он показывает скрытый элемент на секунду. Есть ли лучший способ сделать это, не видя скрытый элемент?

Это скрипт, который я использую (я использую jQuery):

$(window).load(function() {
    if ($.cookie('note')) {
        $('.note').addClass('hide');
    }
});

person Oliver Schmid    schedule 24.03.2016    source источник
comment
Сначала скройте его, а затем покажите, только если файл cookie не существует.   -  person Liam    schedule 24.03.2016
comment
Вы пробовали использовать готовый документ, а не загрузку окна?   -  person Joseph Marikle    schedule 24.03.2016
comment
К сведению, load() устарела и больше не должна использоваться.   -  person Liam    schedule 24.03.2016


Ответы (1)


Просто инвертируйте функцию, чтобы отображать изображение только в том случае, если файл cookie не существует:

$(window).ready(function() {
    if (typeof $.cookie('note') === 'undefined') {
        $('.note').removeClass('hide');
    }
});

Очевидно, ваше состояние по умолчанию должно включать класс hide.

кроме того, как уже упоминалось, не используйте load(), он устарел, не очень хорошо работает и добавляет ненужную задержку к вашему коду.

person Liam    schedule 24.03.2016
comment
Я пытаюсь это сделать, но это не работает: if (typeof $.cookie('note') === 'undefined' - person Oliver Schmid; 28.03.2016
comment
Что происходит при отладке? - person Liam; 29.03.2016
comment
Я получаю следующее: 116 Uncaught TypeError: $.cookie не является функцией drive .google.com/file/d/0B4_0PpHmsIheWU5JZkRGT3RWNkE/ - person Oliver Schmid; 29.03.2016
comment
Но вы использовали $.cookie выше o_O. Это другой вопрос, отвеченный здесь - person Liam; 29.03.2016
comment
Хорошо спасибо! Есть ли способ сделать это без плагина jQuery Cookie? - person Oliver Schmid; 29.03.2016
comment
Ммм, если я добавлю плагин jQuery Cookie, ошибка исчезнет, ​​но скрытие класса не будет удалено. - person Oliver Schmid; 29.03.2016