2013-07-07 29 views
0

我使用jQuery插件的cookie,我试图让浏览器记住一个CSS的状态,在刷新后,这里是我的代码在单击按钮时:jQuery的Cookie组CSS显示:无

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

然后在我的头,我有:

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

的问题是,在每个刷新display属性仍重置为它的默认属性。但是在控制台窗口中,我发现jquery cookie已经成功存储了必要的值,但每次刷新后都没有写入DOM。

任何一个能够帮助我?

感谢

+0

你的cookie值仅包含DOM元素'没有important',你需要添加'显示:' – Clive

+0

请使用JS小提琴。 –

回答

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(){的代码,以确保已经加载

+0

正确,但它的重复我认为,并可能是一个答案下的评论。 – ncm

+0

对你的描述很满意。请检查我的。 – ncm

+0

@imsiso:感谢您的支持。 –

2

字符串中,你从你的cookie得到的回复是这样的:

none !important 

,你给你的元素事情是这样的:

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

使其在完成你的coockie,如:

display:none !important 

编辑
它能够更好地使用它像这样:

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

,也没有必要改变你的cookie的代码(它应该工作)

+0

我已经尝试了您的建议,它仍然返回在DOM中的最终CSS undefined – user2028856

+0

我编辑我的答案您的行为 – Homam

+0

+1对于您答案与描述 – ncm