2010-08-06 94 views
2

我有最初关闭的div。然后下面的代码控制打开/关闭:在jquery中存储信息的概念

$("p:contains('INVESTOR')").click(function() { 
     if($('#cs_investorServ').is(':hidden')) { 
       $('#cs_investorServ').animate({opacity:'toggle', height: 'toggle'},'fast', function(){ 
       $('#cs_furlBar1 .cs_furlHeaderClosed').removeClass().addClass('cs_furlHeaderOpen'); 
       }); 

    } else { 
       $('#cs_investorServ').animate({opacity:'toggle', height: 'toggle'},'fast', function(){ 
       $('#cs_furlBar1 .cs_furlHeaderOpen').removeClass().addClass('cs_furlHeaderClosed');}); 
       } 
    }); 

我现在的问题是,有是div内的显示/隐藏,这需要用户到另一个页面瓦特/详细信息的链接。所以,如果用户返回到第一页,那么div会再次关闭,因为我最初在所有div上运行hide()。 (客户端授权)

如何保存在返回该页面时div被“打开”的事实?我想知道如果我可以使用data方法,但不知道如何构建。

因为我有一个if/else检查是:hidden,我只是认为另一个if/else会干扰if/else的隐藏。

所以,我想切换打开一个div,然后点击里面的div并转到另一个页面,当返回到原始页面时,请点击发起的div仍然打开。

我把这个作为doc ready函数中的第一个动作:$('.cs_hideOpen').hide();所以不知道如何'删除'该类,但只有当用户显示div并从该div单击时。

回答

0

jquery有一个插件可以让你设置,阅读和删除cookies--使通过javascript设置cookies变得更容易。找到插件Here.

只需在div被取消隐藏时设置cookie。每次加载页面时都可以检查该cookie。

0

有三种方法可以解决这个问题。

  • 您可以将服务器端的DIV状态存储在用户会话中(如果有)。您需要使用AJAX将DIV状态发送回服务器,然后以某种方式标记DIV(当它由服务器生成时)(向其中添加一个类或某个类),以便它保持打开状态。
  • 您可以将DIV的状态存储在cookie中。 Google Code上的Cookie项目提供了一个干净的API并与jQuery集成:http://code.google.com/p/cookies/
  • 您可以使用HTML 5本地存储来存储DIV的状态。 Google搜索“html5 localstorage”以获取有关该主题的文章。本地存储是一种在旧版浏览器上不可用的新技术(例如,IE 6和IE 7)。