2013-07-07 7 views
0

Я использую JQuery плагин печенье, и я пытаюсь иметь браузер помните состояние CSS после обновления, вот мой код, когда нажимается кнопка:JQuery печенье набор CSS для отображения: нет

$('#cartHolder').attr('style','display: none !important'); 
    $.cookie("cartDisplay", 'none !important'); 

Тогда в моем заголовке у меня есть:

if ($.cookie("cartDisplay")){ 
     $('#cartHolder').attr('style', $.cookie("cartDisplay")); 
    } 

проблема заключается в том, после каждого освежить display свойство еще сбрасывается обратно это по умолчанию свойство. Однако в окне консоли я вижу, что jquery cookie успешно сохранил необходимое значение, оно просто не записывается в DOM после каждого обновления.

Любой, кто может мне помочь?

Благодаря

+0

Ваше значение печенья содержит только 'ни important', вам нужно добавить' дисплей: ' – Clive

+0

Пожалуйста, используйте JS FIDDLE. –

ответ

2

Не следует использовать attr('style') как это. будет переопределить все ваши стили. Вместо этого используйте .css. Также попробуйте избежать !important. Попробуйте

$('#cartHolder').css('display','none'); 
$.cookie("cartDisplay", 'none'); 

В вашем заголовке.

$(document).ready(function(){ 
    if ($.cookie("cartDisplay")){ 
      $('#cartHolder').css('display', $.cookie("cartDisplay")); 
     } 
}); 

Или вы могли бы использовать .toggle

$('#cartHolder').hide(); 
$.cookie("cartDisplay", 'false'); 

В вашем заголовке. !

$(document).ready(function(){ 
    if ($.cookie("cartDisplay")){ 
      $('#cartHolder').toggle($.cookie("cartDisplay")); 
     } 
}); 

Не забудьте обернуть код внутри $(document).ready(function(){, чтобы обеспечить элементы DOM были загружены

+0

правильно, но его дубликат Я думаю и могу быть комментарием по ответу. – ncm

+0

OK nice +1 к вашему описанию. пожалуйста, проверьте мой тоже. – ncm

+0

@immiso: спасибо за ваше возвышение. –

2

Строки Вы получаете от вашего печенья заключается в следующем:

none !important 

и вещь вы даете ваш элементу это:

<div style="none !important"></div> 

сделать полным в вашем cookeie, like:

display:none !important 

EDIT
его лучше использовать его как это:

$('#cartHolder').css('display', $.cookie("cartDisplay")) 

и нет необходимости менять куки код вашей (он должен работать)

+0

Я пробовал ваше предложение, и он по-прежнему возвращает неопределенные в окончательном CSS в DOM – user2028856

+0

. Я отредактировал свой ответ на ваш документ. – Homam

+0

+1 для вас ответит с пометкой – ncm