Frage

Was ich versuche zu tun haben eine Sidebar Toggle öffnen und schließen, die funktioniert prima, aber ich will Cookie auch die Sidebar Zustand erinnern, wenn Website browsen und wenn Sie auf Seite seiner auf

Rückkehr

dh: wenn geschlossen, wenn offen offen geschlossen werden:

$(document).ready(function($) {
 $('a#side').click(function(){
  $('#sidebar').toggle();
$('a#side').text($(this).text() == 'Show' ? 'Hide' : 'Show');
  $.cookie('side_cookie', 'value');
 return false;
});
if($.cookie('side_cookie')) { 
$('#sidebar').hide(); 
   } else {
$('#sidebar').show();
   }
});

Der aktuelle Code oben nur erinnert, wenn seine geschlossen und bleibt geschlossen, bis Sitzung beendet und damit Sie wechseln müssen, um es jedes Mal, wenn Sie auf Seite zurückkehren öffnen ...

Ein Beispiel dafür, was im Versuch kann zu erreichen, bei vbulletin.com/forum/ zu sehen, wenn Sie ihre Sidebar schließen Sie dann die Foren durchsuchen, wenn Sie zur Hauptseite zurück sein immer noch geschlossen und umgekehrt.

Jede Hilfe ist willkommen

War es hilfreich?

Lösung 3

Ok thx guys but I got it sorted, its alot more code then I wanted as its alot of .show()/.hide() rather then .toggle() buts it works sofor now it will do:

$('a#hide').click(function(){
  $('a#hide,#sidebar').hide();
  $('a#show').show();
  $.cookie('side_cookie_hidden', 'hidden');
  $.cookie('side_cookie_show', null);
 return false;
});

$('a#show').click(function(){
  $('a#show').hide();
  $('a#hide,#sidebar').show();
  $.cookie('side_cookie_show', 'show');
  $.cookie('side_cookie_hidden', null);
 return false;
});

if($.cookie('side_cookie_hidden')) { 
$('a#show').show();
$('a#hide,#sidebar').hide(); 
   } else {
$('a#show').hide();
$('a#hide,#sidebar').show(); 
}

Andere Tipps

I think the issue is with if condition if($.cookie('side_cookie')). Try this:

$(document).ready(function($) {
 $('a#side').click(function(){
  $('#sidebar').toggle();
$('a#side').text($(this).text() == 'Show' ? 'Hide' : 'Show');
  $.cookie('side_cookie', $(this).text());
 return false;
});
if($.cookie('side_cookie')=='Hide') { 
$('#sidebar').hide(); 
   } else {
$('#sidebar').show();
   }
});

You have to check the value of the cookie rather than its existence. Also you are hardcoding the value of the cookie as value. Change it to show or hide.

// when it is shown
$.cookie('side_cookie', 'show');

// when it is hidden

$.cookie('side_cookie', 'hide');

and check the value of the cookie

if($.cookie('side_cookie') === "show") {
    // code for showing side bar
}
else {
    // code for hiding the side bar
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top