使div打开/关闭状态持续存在

时间:2011-06-08 01:04:41

标签: jquery

这是一个下拉div,其中包含我页面顶部的帐户信息。 在手动关闭div之前,我该怎么做才能使div保持打开状态?

如果页面刷新或者导航到新页面,我希望它保持打开状态除非他们点击“注册新帐户”链接,然后我希望div关闭并且该人员将被重定向(通过magento)到注册页面。

$(document).ready(function() {

    // Expand Panel
    $(".open-js").click(function(){
            $("div.panel").slideDown("slow");
    }); 

    // Collapse Panel
    $(".close-js").click(function(){
            $("div.panel").slideUp("slow"); 
    });     

    // Switch buttons from "Log In | Register" to "Close Panel" on click
    $(".toggle-js a").click(function () {
            $(".toggle-js a").toggle();
    }); 

});

2 个答案:

答案 0 :(得分:1)

您可以查看jQuery Cookie addon并将状态存储在Cookie中

答案 1 :(得分:1)

您可以使用以下语法在JavaScript中创建Cookie:

document.cookie =
  'examplecookie=amorrosa; expires=Thu, 2 Jul 2011 12:00:00 UTC; path=/'

因此,如果您想在用户点击注册链接时设置一个cookie(无论他们是否真正遵循注册过程),您都会将其包含在您的注册链接点击事件中:< / p>

// Switch buttons from "Log In | Register" to "Close Panel" on click
$(".toggle-js a").click(function () {
    $(".toggle-js a").toggle();
    document.cookie =
      'examplecookie=amorrosa; expires=Thu, 2 Jul 2011 12:00:00 UTC; path=/'
}); 

您可以在该Cookie信息中包含任何类型的名称/值对,因此您可能拥有“myuserinformation = user.name”或某些此类值,而不是“examplecookie = amorrosa”。

要决定是否显示你的div,你会看到cookie是否存在,读取它的值(或者你可能只是检查你的cookie是否存在并显示div是否存在)并显示div :

if(document.cookie) {
   index = document.cookie.indexOf('examplecookie');
   if (index != -1) {
       $('#myDiv').show();
   }
}