2011-01-16 3 views
1

Was ich versuche, eine Sidebar Toggle öffnen und schließen zu tun ist, haben, die funktioniert gut, aber ich möchte auch Cookie, um die Sidebar Zustand erinnern, wenn Website browsen und wenn Sie auf Seite seiner aufjquery und Cookie-Status

Rückkehr

dh: wenn geschlossen geschlossen werden, wenn offen offen:

$(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 so haben Sie wechseln sie jedes Mal öffnen Sie Seite zurückzukehren. ..

Ein Beispiel dafür, was ich versuche zu achi eve kann unter vbulletin.com/forum/ eingesehen werden, wenn Sie die Seitenleiste schließen, dann durchsuchen Sie die Foren, wenn Sie zur Hauptseite zurückkehren, die noch geschlossen ist und umgekehrt.

jede Hilfe ist willkommen

Antwort

0

Ok thx Jungs, aber ich habe es sortiert, seine viel mehr Code dann ich als eine Menge .show wollte() /. Hide() eher dann buts .toggle() funktioniert es şoför jetzt wird es tun:

$('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(); 
} 
0

denke ich, das Problem mit, wenn die Bedingung ist 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(); 
    } 
}); 
+0

Thx Cybernate aber nicht – Dizzi

0

Sie haben den Wert des Cookies zu überprüfen, anstatt seine Existenz. Außerdem codieren Sie den Wert des Cookies als value. Ändern Sie es zu show oder hide.

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

// when it is hidden 

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

und prüfen Sie den Wert des Cookies

if($.cookie('side_cookie') === "show") { 
    // code for showing side bar 
} 
else { 
    // code for hiding the side bar 
} 
+0

Ist :(arbeiten, dass nicht das, was Cybernate das Beispiel zeigt ..he $ (this) .text verwenden tryed (?), um den Cookie-Wert zu setzen, aber es hat nicht funktioniert .... wenn es nicht könnte Sie sh besitze ein Beispiel, da dies die erste Verwendung von Cookies thx ist. – Dizzi