用jquery和cookie切换和保留状态

问题描述

| 我有2个div,它们通过jquery切换。我希望它们在页面重新加载时具有相同的状态,因此使用了Coockie。但是无论如何,它都会卡在div之一上,因为我似乎无法设置正确的coockie。怎么了?
<!doctype html>
<html>
<head>
<meta charset=\"utf-8\">
<script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js\"></script>
<script src=\"jquery.cookie.js\"></script>
<style type=\"text/css\">
body {
    margin: 80px;
}
.about {
}

.nav {
display: none;
}
</style>
<title></title>
</head>
<body>
<div class=\"about\">
This is the about text
</div>
<div class=\"nav\" >
This is the nav text
</div>
<script type=\"text/javascript\" >
    jQuery(document).ready(function($) {

        //check cookie when page loads
        if (jQuery.cookie(\"visible\") === \"nav\") {
            jQuery(\".nav\").css({ display: \"block\" });
            jQuery(\".about\").css({ display: \"none\" });
        }

        jQuery(\"#knapp\").click(function () {
            jQuery(\".about\").toggle(10);
            jQuery(\".nav\").toggle(10);

            if(jQuery(\".nav\").css(\"display\")  === \"block\") {
                jQuery.cookie(\"visible\",\"nav\");
            }
            else {
                jQuery.cookie(\"visible\",\"about\");
            }

        //return false; //Prevent browser jump to the link anchor

        });
            });
</script>
<div id=\"about-nav toggle\">
<a href=\"#\" id=\"knapp\">Nav toggle</a>
</div>

</body>
</html>
    

解决方法

这家伙:
jQuery(\".nav\").css(\"display\")
似乎总是返回\“ block \”。.最好有一个明确的变量来跟踪状态:
$(document).ready(function($) {
    var isAbout = true;
    if ($.cookie(\"visible\") === \"nav\") {
        // ...
        isAbout = false;
    }

    $(\"#knapp\").click(function () {
        // ...
        isAbout = !isAbout;
        $.cookie(\"visible\",isAbout ? \"about\" : \"nav\");
    });
 });
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...