jQuery y galleta de estado
Pregunta
Lo que estoy tratando de hacer es tener una barra lateral de palanca de apertura y cierre que está funcionando bien pero también quiero cookie para recordar el estado barra lateral cuando se navega por el sitio y al regresar a la página de su
es decir: si cerrado puede cerrar si abierto estar abierto:
$(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();
}
});
El código actual por encima de simplemente recuerda si su estado cerrada y permanece cerrado hasta que se terminó la sesión y lo que tiene que cambiar es abrir cada vez que regrese a la página ...
Un ejemplo de lo que estoy tratando de lograr se puede ver en vbulletin.com/forum/ si cierra su barra lateral a continuación, busque los foros cuando vuelva a la página principal de su todavía cerrada y viceversa.
cualquier ayuda se agradece
Solución 3
chicos THX bien, pero me lo arregló, su mucho más código entonces yo quería como su gran cantidad de .show () / ocultar () en lugar de .toggle () peros funciona Sofor ahora lo hará:.
$('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();
}
Otros consejos
Creo que el problema está en si la condición if ($. Cookie ( 'side_cookie')). Prueba esto:
$(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();
}
});
Usted tiene que comprobar el valor de la cookie en lugar de su existencia. También está codificando el valor de la cookie como value
. Cambiarlo a show
o hide
.
// when it is shown
$.cookie('side_cookie', 'show');
// when it is hidden
$.cookie('side_cookie', 'hide');
y compruebe el valor de la cookie
if($.cookie('side_cookie') === "show") {
// code for showing side bar
}
else {
// code for hiding the side bar
}