2010-08-06 5 views
2

J'ai des divs initialement fermés. Le code ci-dessous puis commande l'ouverture/fermeture:Concept de stockage des informations dans 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');}); 
       } 
    }); 

Mon problème est maintenant qu'il ya un lien dans la div qui est montré/caché qui prend un utilisateur vers une autre page w/plus d'informations. Donc, si l'utilisateur revient à la première page, le div est à nouveau fermé parce que je lance un hide() sur tous les divs au départ. (mandat du client)

Comment puis-je sauvegarder le fait qu'une div est 'ouverte' en revenant sur cette page? Je me demande si je peux utiliser la méthode data mais je ne sais pas comment je pourrais construire cela.

Puisque j'ai un if/else qui vérifie est: hidden, je pensais juste qu'un autre if/else interférerait avec if/else pour hidden. Donc, je veux basculer l'ouverture d'un div, puis en cliquant à l'intérieur de ce div et aller à une autre page, en revenant à la page d'origine, avoir la div où le clic origine toujours être ouvert.

Je l'ai comme première action dans la fonction doc prêt: $('.cs_hideOpen').hide(); donc je ne sais pas comment 'supprimer' cette classe, mais seulement quand un utilisateur a montré un div et cliqué à partir de ce div.

Répondre

0

Il existe un plugin pour jquery qui vous permet de définir, lire et supprimer des cookies, ce qui facilite la configuration des cookies via javascript. Trouver le plugin Here.

Il suffit de définir le cookie lorsque le div est non caché. Vous pouvez vérifier ce cookie à chaque fois que la page est chargée.

0

Il y a trois façons de le faire qui me viennent à l'esprit.

  • Vous pouvez stocker l'état des DIV du côté serveur dans la session des utilisateurs, s'ils en ont un. Vous devez utiliser AJAX pour renvoyer l'état DIV au serveur, puis marquer la DIV d'une manière ou d'une autre lorsqu'elle est générée par le serveur (ajouter une classe ou quelque chose) pour qu'elle reste ouverte.
  • Vous pouvez stocker l'état des DIV dans un cookie. Le projet de cookies sur Google Code fournit une API propre et une intégration avec jQuery: http://code.google.com/p/cookies/
  • Vous pouvez stocker l'état des DIV en utilisant le stockage local HTML 5. Recherche Google "html5 localstorage" pour des articles sur le sujet. Le stockage local est une nouvelle technologie qui n'est pas disponible sur les anciens navigateurs (IE 6 et IE 7 par exemple).
Questions connexes