définir un cookie dans jquery pour show / hide div

J’ai un menu CSS dans un div qui est défini avec CSS: display: none; sur le chargement de la page.

J’ai ce html:

Show Menu Hide Menu 

et ce JQUERY:

  $('.show_menu').click(function() { $('#nav').toggle(); $("#page_cont").css("width", "80%"); $(".hide_menu").css("display", "block"); $(".show_menu").css("display", "none"); }); $('.hide_menu').click(function() { $('#nav').toggle(); $("#page_cont").css("width", "100%"); $(".hide_menu").css("display", "none"); $(".show_menu").css("display", "block"); });  

Quel serait le meilleur moyen de voir un cookie lorsque la div est affichée ou masquée; ainsi, lorsque l’utilisateur change de page, s’il ouvre le menu, il rest ouvert sur une autre page et s’il ferme le menu, il se ferme également. pages jusqu’à ce qu’ils l’ouvrent à nouveau?

EDIT: voici mon nouveau code

   var menu_state = $.cookie('mydomain_menuflag'); alert(menu_state); if(menu_state !== "undefined" && menu_state == "visible" ) $('#nav').show;      $('.show_menu').click(function() { $('#nav').toggle(); $("#page_cont").css("width", "80%"); $(".hide_menu").css("display", "block"); $(".show_menu").css("display", "none"); $.cookie('mydomain_menuflag', 'visible'); var menu_state = $.cookie('mydomain_menuflag'); alert(menu_state); }); $('.hide_menu').click(function() { $('#nav').toggle(); $("#page_cont").css("width", "100%"); $(".hide_menu").css("display", "none"); $(".show_menu").css("display", "block"); $.cookie('mydomain_menuflag', 'hidden'); });  

Essayez cette lib: https://github.com/carhartl/jquery-cookie

Définissez votre cookie dans la fonction de votre événement show:

 $.cookie('mydomain_menuflag', 'visible'); 

et cacher:

 $.cookie('mydomain_menuflag', 'hidden'); 

et dans la charge de document faire votre contrôle initial

 var menu_state = $.cookie('mydomain_menuflag'); if( typeof menu_state !== "undefined" && menu_state == "visible" ) $('#nav').show; 

Je n’ai pas testé, alors laissez-moi savoir si j’ai laissé un bogue dans.

Modifier:

Voici le code complet qui devrait le faire:

  

et ajoutez cette ligne dans votre balise head:

Je recommanderais généralement de télécharger et de relier une copie locale de la bibliothèque, mais la procédure ci-dessus devrait vous aider à démarrer.

Edit 2:

Voici un violon qui fonctionne: http://jsfiddle.net/YZenq/1/

REMARQUE: Un JSFiddle n’est pas identique à votre page Web.

  1. Le violon n’a pas besoin d’un document prêt car son code le gère. Votre page devrait utiliser cela, mais mettez tout votre code dans un, pas plusieurs.
  2. Un violon ne vous laisse pas changer la tête de votre document ( ... ). Les violons ont une option de ressources externes sur la gauche pour faire la même chose que la bibliothèque à laquelle j’ai fourni le lien. Sur un violon, vous venez de mettre l’URL (c’est-à-dire le code dans l’atsortingbut src de la balise script). Mais vous devrez append la balise de script complète, la plus petite qui relie la bibliothèque, juste à la fin de votre balise head.

Cela a-t-il du sens?

Edit 3:

Mise à jour avec modification pour l’empêcher de configurer plusieurs instances de cookie: http://jsfiddle.net/YZenq/2/