我需要记住点击框的状态(如果显示或隐藏)。我正在使用cookies插件。
当我点击#clickable h3
时,我想隐藏或显示#clickable p
...我需要在F5之后隐藏/显示它(因此它会记住它的状态)。
在初始加载时,必须隐藏该框,但如果不存在Javascript,则会始终显示该框 这是我的代码:
$(document).ready(function(){
/* On load show/hide box depending on cookie */
if($.cookie('click_cookie') == true){
$.cookie('click_cookie', true);
$("#clickable p").show();
} else {
$.cookie('click_cookie', false);
$("#clickable p").hide();
}
/* When clicked */
$("#clickable h3").click(function(){
/* Animate box */
$("#clickable p").animate({
height: "toggle",
opacity: "toggle"
})
/* Toggle cookie */
if($.cookie('click_cookie') == true){
$.cookie('click_cookie', false);
} else {
$.cookie('click_cookie', true);
}
});
});
问题在于它不能按预期工作。在F5之后,该框始终隐藏。 $.cookie('click_cookie') == true
永远不会评估,因此它将永远隐藏。
答案 0 :(得分:1)
试试这个。 $ .cookie返回并设置字符串:
$(function(){
/* On load show/hide box depending on cookie */
$("#clickable p").toggle($.cookie('click_cookie') == "true");
/* When clicked */
$("#clickable h3").click(function(){
/* Animate box */
$("#clickable p").animate({
height: "toggle",
opacity: "toggle"
})
/* Toggle cookie */
var show = $.cookie('click_cookie') =="true"; // also false if no cookie at all
$.cookie('click_cookie',show?"false":"true");
});
});