tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von javaDeveloper2011
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
644
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    LonesWolf LonesWolf ist offline Rookie
    Registriert seit
    Dec 2011
    Beiträge
    5
    Hallo liebe Tutorials.de Mitglieder!

    Ich habe leider ein Problem, bei welchem ich einfach verzweifel. Ich habe mir eine Sidebar für eine Webseite gebaut, welche beim ersten Besuch geschlossen bleiben soll und sich erst beim klicken der Schaltfläche öffnet.

    Da in der Sidebar ein Formular ist und bei jedem Absenden immer wieder die Sidebar schließt, wollte ich nun eine Art Cookie einsetzen, welche die Einstellung des Gasts speichert. Somit wird dem Gast immer der Status "Offen" oder "Geschlossen" angezeigt, welchen er selber gewählt hat.

    Dies ist der HTML Code:

    HTML-Code:
    <div id="shoutbox"><a href="#" id="togglesidebar"></a>
     <div id="sidebar"></div>
    </div>
    Und dies ist mein JavaScript:

    PHP-Code:
    $(document).ready(function() {
        var 
    sidebar_status = $.cookie("sidebar_status");

        if (
    sidebar_status == null){
         $(
    "a#togglesidebar").addClass('closed');
        $(
    "#sidebar").hide();
          };
        
        if (
    sidebar_status == "closed"){
         $(
    "a#togglesidebar").removeClass('open');
        $(
    "a#togglesidebar").addClass('closed');
        $(
    "#sidebar").css("display","none");
        };
        
          if (
    sidebar_status == "open"){
        $(
    "a#togglesidebar").addClass('open');
          };


        $(
    "a#togglesidebar").click(function() {
        if ($(
    "a#togglesidebar").attr("class")=='open'){
            $(
    this).removeClass('open');
            $(
    this).addClass('closed');
            $.
    cookie("sidebar_status""closed", { path'/'expires100 });
            $(
    "#sidebar").animate({
                
    width'hide',
                
    opacity'hide'
            
    }, 'slow');
        } else {
            $(
    this).removeClass('closed');
            $(
    this).addClass('open');
            $.
    cookie("sidebar_status""open", { path'/'expires100 });
            $(
    "#sidebar").animate({
                
    width'show',
                
    opacity'show'
            
    }, 'slow');
        }
    }); 
    Ich kann hier einfach keinen Fehler finden und trotzdem funktioniert es einfach nicht Kann mir bitte jemand helfen?

    jQuery und zusätzliche Plugins sind alle aktuell und eingebunden.

    Viele Grüße
    LonesWolf
     

  2. #2
    Avatar von javaDeveloper2011
    javaDeveloper2011 javaDeveloper2011 ist offline Mitglied Brokat
    Registriert seit
    Feb 2011
    Beiträge
    445
    Blog-Einträge
    5
    Hi,

    kann es sein, dass am ende einfach nur }); fehlt?

    Der Cookie wird dann jedenfalls richtig gesetzt!
    LonesWolf bedankt sich. 

  3. #3
    LonesWolf LonesWolf ist offline Rookie
    Registriert seit
    Dec 2011
    Beiträge
    5
    Vielen Dank javaDeveloper2011! Da habe ich doch tatsächlich vor lauter Bäumen den Wald nicht mehr gesehen

    Jetzt kann ich durch einen Klick die Sidebar öffnen und sie bleibt auch offen. Wenn ich jedoch erneut auf die Schaltfläche klicke, passiert leider garnix mehr

    //EDIT:

    Ich wollte nun nicht extra einen neuen Post dafür machen

    Ich vermute den Fehler im folgenden Bereich, da ich nun etwas damit rumgespielt habe und sich das Verhalten auch geändert hat, nur leider nicht zu dem gewünschten Verhalten.

    PHP-Code:
    $("a#togglesidebar").click(function() {

    if ($(
    'a#togglesidebar').attr('class')=='open'){
            $(
    this).removeClass('open');
            $(
    this).addClass('closed');
            $.
    cookie("sidebar_status"'closed', { path'/'expires100 });
            $(
    '#sidebar').animate({ width'hide'opacity'hide' }, 'slow');
    } else {
            $(
    this).removeClass('closed');
            $(
    this).addClass('open');
            $.
    cookie("sidebar_status"'open', { path'/'expires100 });
            $(
    '#sidebar').animate({ width'show'opacity'show' }, 'slow');

    Geändert von LonesWolf (12.12.11 um 14:05 Uhr)
     

  4. #4
    LonesWolf LonesWolf ist offline Rookie
    Registriert seit
    Dec 2011
    Beiträge
    5
    Ich habe den Fehler nun gefunden und muss zugeben, dass ich viel früher die jQuery Seite durchstöbern hätte sollen

    Aus folgendem:

    PHP-Code:
    $("a#togglesidebar").click(function() {

    if ($(
    'a#togglesidebar').attr('class')=='open'){
            $(
    this).removeClass('open');
            $(
    this).addClass('closed');
            $.
    cookie("sidebar_status"'closed', { path'/'expires100 });
            $(
    '#sidebar').animate({ width'hide'opacity'hide' }, 'slow');
    } else {
            $(
    this).removeClass('closed');
            $(
    this).addClass('open');
            $.
    cookie("sidebar_status"'open', { path'/'expires100 });
            $(
    '#sidebar').animate({ width'show'opacity'show' }, 'slow');

    macht man:

    PHP-Code:
    $("a#ToggleSidebar").click(function() {

    if ($(
    "a#ToggleSidebar").hasClass("open")) {
             $(
    this).removeClass('open').addClass('closed');
         $.
    cookie("sidebar_status""closed", { path"/"expires100 });
         $(
    "#sidebar").animate({ width'hide'opacity'hide' }, 'slow');
    } else { 
         $(
    this).removeClass('closed').addClass('open');
         $.
    cookie("sidebar_status""open", { path"/"expires100 });
         $(
    "#sidebar").animate({ width'show'opacity'show' }, 'slow');

    Grüße und Danke nochmal.
     

Ähnliche Themen

  1. jQuery - Array und Objekte kombinieren?
    Von unrealzero_php im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 08.07.10, 09:49
  2. [jQuery] Facebook-Social Plugins mit Sidebar-Button sichtbar machen
    Von GangXtaBoiii im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 29.06.10, 14:58
  3. jQuery: sortable und selectable kombinieren
    Von LiebHabSchafi im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 16.02.09, 16:44
  4. Zeit Cookies in Session Cookies ändern
    Von messmar im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 06.11.08, 16:07
  5. Sidebar
    Von DarkDirk im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 21.10.07, 04:30

Stichworte