Bruzzler: JS/Ajax Menü --> Problem bei Auswahl eines Untermenüs

Hallo,

habe ein problem bei einem Menü, und zwar weiss ich nicht, wie man es hinbekommt, dass das Untermenü (auf das man geklickt hat) auch in der neuen Seite geöffnet bleibt.
Im Moment ist es so, dass sich die navigation wieder komplett schließt.

Als Menü wollte ich das hier verwenden.

Gibt es eine Möglichkeit, dass das Menü auf der nächsten Seite geöffnet bleibt?

Danke und Grüße
Bruzzler

  1. Hi!

    Gibt es eine Möglichkeit, dass das Menü auf der nächsten Seite geöffnet bleibt?

    Jein. Grundsätzlich gibt es kein Vorher und kein Nachher. Wenn du möchtest, dass die Response auf einen bestimmten Request auf eine bestimmte Art aussieht, musst du den ausgelieferten Code entsprechend gestalten.

    Allerdings könntest du mit etwas Javascript nachhelfen. Setz auf der "alten" Seite ein Cookie, das den Zustand des Menüs beschreibt und lies es auf der "neuen" Seite aus und manipulier die Eigenschaften der entsprechenden Elemente.

    Lo!

    1. Hi,

      Allerdings könntest du mit etwas Javascript nachhelfen. Setz auf der "alten" Seite ein Cookie, das den Zustand des Menüs beschreibt und lies es auf der "neuen" Seite aus und manipulier die Eigenschaften der entsprechenden Elemente.

      wenn ich Dich nicht besser kennen würde, würde ich sagen: Willkommen im Internet! Lass Dich nicht von der Eingewöhnungsphase abschrecken, Du findest sicher bald raus, wie solche Dinge wie ein "Browser" für Dich funktionieren.

      Dieser Tipp ist nicht Dein Ernst, oder?

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Hi!

        Allerdings könntest du mit etwas Javascript nachhelfen. Setz auf der "alten" Seite ein Cookie, das den Zustand des Menüs beschreibt und lies es auf der "neuen" Seite aus und manipulier die Eigenschaften der entsprechenden Elemente.

        Das Cookie braucht man nicht, denn das Javascript einer Seite kann selbst herausfinden, auf welcher es läuft und welches Menü sie aufklappen muss (wenn man das nicht schon im Quelltext erledigen will).

        wenn ich Dich nicht besser kennen würde, würde ich sagen: Willkommen im Internet! Lass Dich nicht von der Eingewöhnungsphase abschrecken, Du findest sicher bald raus, wie solche Dinge wie ein "Browser" für Dich funktionieren.
        Dieser Tipp ist nicht Dein Ernst, oder?

        Konkretisier bitte deine Kritik. "ist nicht Dein Ernst" ist nicht Dein Ernst, oder?

        Lo!

        1. Das Cookie braucht man nicht, denn das Javascript einer Seite kann selbst herausfinden, auf welcher es läuft und welches Menü sie aufklappen muss (wenn man das nicht schon im Quelltext erledigen will).

          Servus,

          erstmal danke schön. Wenn das ohne Cookie geht, würde ich das dann gern direkt im Quelltext über JS machen. Habt ihr nen Anhaltspunkt für mich, wie das gehen soll bzw. wo ich dafür Tipps finde?

          Danke und Grüße

          1. Hi!

            erstmal danke schön. Wenn das ohne Cookie geht, würde ich das dann gern direkt im Quelltext über JS machen. Habt ihr nen Anhaltspunkt für mich, wie das gehen soll bzw. wo ich dafür Tipps finde?

            Im Grunde brauchst du nur die Dateien auf dem Server entsprechend anzupassen. Für die Seite "produkte.html" muss das Produkte-Menü aufgeklappt sein, bei "xy.html" das Menü XY, und so weiter. Wenn du das nicht im Code der Seite direkt festlegen kannst, kann Javascript das nachträglich tun. Du wirst dazu generellen Javascript-Code verwenden wollen, den du einmalig erstellst und überall einbindest. Der muss dann entweder mit einer individuell gesetzten Variable gesagt bekommen, welches Menü er aufzuklappen hat, damit er die dazu notwendigen Eigenschaften der betroffenen DOM-Elements ändern kann (CSS-Klasse ändern oder -Eigenschaften direkt setzen). Oder er ermittelt das anhand der URL.

            Lo!

        2. Hi,

          Das Cookie braucht man nicht, denn das Javascript einer Seite kann selbst herausfinden, auf welcher es läuft und welches Menü sie aufklappen muss (wenn man das nicht schon im Quelltext erledigen will).

          richtig. Deswegen fand ich den Vorschlag mit dem Cookie auch reichlich daneben.

          Konkretisier bitte deine Kritik. "ist nicht Dein Ernst" ist nicht Dein Ernst, oder?

          Cookie und Browser-Back. Mehr ist glaube ich nicht nötig an Konkretisierung.

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. Hi!

            Konkretisier bitte deine Kritik. "ist nicht Dein Ernst" ist nicht Dein Ernst, oder?
            Cookie und Browser-Back. Mehr ist glaube ich nicht nötig an Konkretisierung.

            Dass ein Cookie nicht benötigt wird, hab ich ja selbst schon herausgefunden. Manchmal fällt mit im ersten Ansatz eben nur eine umständliche Methode ein, für die es eine bessere ALternative gibt. Aber was du mit Browser-Back meinst, erschließt sich mir nicht. window.history - falls du das meinst - spielte jedenfalls in keinem meiner Gedanken eine Rolle.

            Lo!

            1. Hi,

              Dass ein Cookie nicht benötigt wird, hab ich ja selbst schon herausgefunden. Manchmal fällt mit im ersten Ansatz eben nur eine umständliche Methode ein, für die es eine bessere ALternative gibt.

              korrekt. Diesen Umstand habe ich identifiziert und genannt.

              Aber was du mit Browser-Back meinst, erschließt sich mir nicht. window.history - falls du das meinst - spielte jedenfalls in keinem meiner Gedanken eine Rolle.

              Keine einzige Funktion des Browsers ist dem Nutzer besser bekannt als der Back-Button. Ich kann das Problem gerne noch um Bookmarks erweitern, womit das gesamte Ausmaß aber noch immer gerade mal nur angekratzt wäre.

              Cheatah

              --
              X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
              X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
              X-Will-Answer-Email: No
              X-Please-Search-Archive-First: Absolutely Yes
              1. Hi!

                Aber was du mit Browser-Back meinst, erschließt sich mir nicht. window.history - falls du das meinst - spielte jedenfalls in keinem meiner Gedanken eine Rolle.
                Keine einzige Funktion des Browsers ist dem Nutzer besser bekannt als der Back-Button. Ich kann das Problem gerne noch um Bookmarks erweitern, womit das gesamte Ausmaß aber noch immer gerade mal nur angekratzt wäre.

                Aha. Zur Erklärung, was du damit gemeint hast, hier die weniger kryptische Version: Beim Benutzen des Back-Buttons würde keiner der Menüpunkte gewählt, somit auch kein onclick- oder ähnliches Ereignis ausgelöst, in dem man den Keks hätte setzen können. Auf "historischen" Seiten würde also auch immer das Menü der "aktuellen" Seite ausgeklappt erscheinen. Das selbe Problem ergäbe sich bei Bookmarks sowie bei was auch immer du mit "wird nur angekratzt" noch so meint.

                Lo!

      2. Hi,

        Dieser Tipp ist nicht Dein Ernst, oder?

        Warum sollte er das nicht?
        Was spricht dagen, einen bestimmten Zustand im Cookie weiterzutransportieren?

        Gruesse, Joachim

        --
        Am Ende wird alles gut.
        1. Hi,

          Was spricht dagen, einen bestimmten Zustand im Cookie weiterzutransportieren?

          die Tatsache, dass es sich bei der transportierten Information nicht um einen Zustand handelt, es aber faktisch einer wird.

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. Hi,

            die Tatsache, dass es sich bei der transportierten Information nicht um einen Zustand handelt, es aber faktisch einer wird.

            Solange ich transportierte Information und Zustand immer synchronisiere sehe ich da kein Problem - und auch keine andere Möglichkeit, um z.B per Ajax erstellte Zustände bei Benutzung des Back-Buttons wiederherzustellen.

            Gruesse, Joachim

            --
            Am Ende wird alles gut.
            1. Hi,

              die Tatsache, dass es sich bei der transportierten Information nicht um einen Zustand handelt, es aber faktisch einer wird.
              Solange ich transportierte Information und Zustand immer synchronisiere sehe ich da kein Problem

              die Basis der Synchronisierung erfordert, dass ein Cookie diesbezüglich keinen Nutzen mehr bringt: Die Seite muss, *ohne vom Server angefordert zu werden*, die Entscheidung, für den das Cookie eigentlich gedacht ist, von selbst treffen können.

              und auch keine andere Möglichkeit, um z.B per Ajax erstellte Zustände bei Benutzung des Back-Buttons wiederherzustellen.

              *Falls* die per AJAX erstellten Zustände hierbei noch verfügbar sind, was vom Browser abhängt, können sie die betreffende Information enthalten. Einem Cookie kann man übrigens nicht ansehen, ob sie es sind, so dass sein Inhalt erneut nutzfrei ist.

              Cheatah

              --
              X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
              X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
              X-Will-Answer-Email: No
              X-Please-Search-Archive-First: Absolutely Yes
              1. Hi,

                *Falls* die per AJAX erstellten Zustände hierbei noch verfügbar sind, was vom Browser abhängt, können sie die betreffende Information enthalten.

                sie sind nicht zuverlässig verfügbar, also man muss sie wiederherstellen. Das Cockie enthält dazu die Informationen, welche Entscheidungen auf der betreffenden Seite zu einem früheren Zeitpunkt getroffen wurden.

                Gruesse, Joachim

                --
                Am Ende wird alles gut.