jquery: js-cookie в ie7 не работает?

Эй, ребята, не понимаю... Я хочу показывать бар в верхней части моей страницы, только если смотреть с ie6, ie7 или ie8.

<div id="topbar">
    <div class="topbarcontent">Some Information for users.</div>
    <div class="topbarCloser" title="Schließen">&nbsp;</div>
</div>

JQuery:

if ($.browser.msie && $.browser.version.substr(0,1)<9) { // if ie6 || ie7 || ie8

var topbar = $.cookie('TopBar');

if (topbar === 'on') {
    $('#topbar').hide();
} else { 
    $('#topbar').show();
}

//Browser Tip
$('#topbar .topbarCloser').click(function() {
    $(this).parent().slideUp({
        duration: 300,
        easing: 'easeOutQuint',
        complete: function() { 
            $('#topbar').remove();
            $.cookie('TopBar', 'on', { expires: 1000 });
        }
    });
});

}

Пользователь может просто щелкнуть ближе, cookie сохраняется, и панель скрыта для будущих посещений. (я знаю, что это должно быть сделано с базой данных, но в моем случае это нормально)

Он работает нормально в ie8, но в ie7 полоса мигает в течение нескольких миллисекунд, а затем скрывается. Поэтому, если страница посещается впервые в ie7, верхняя панель должна быть видимой, но это не так. Я вижу, как он мигает очень скоро, а потом он скрыт. (не исчезает, просто скрыто).

Есть идеи, что может вызвать это? Что-нибудь странное с моим кодом?

2 ответа

Решение

Это, вероятно, вызвано вашим CSS. Ваш JS не скрывает это сразу, а ваш CSS имеет это видимым. Переключи свой случай. Скрыть панель по умолчанию (в CSS), а затем, при необходимости, показать ее с помощью JavaScript.

Это предотвратит этот короткий момент при загрузке страницы, где он виден, прежде чем ваш JS придет, чтобы скрыть его.

Так...

#topbar { display: none; }

Это означает, что ваш JS может просто читать:

if (topbar != 'on') {
    $('#topbar').show();
}

Попробуйте отредактировать плагин cookie:

в строке 83 вместо:

if (document.cookie && document.cookie != '') {

использовать:

if ((typeof(document.cookie) != 'undefined') && document.cookie != '') {
Другие вопросы по тегам