Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Problem mit Click Event

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Problem mit Click Event

    Ich habe ein Problem mit einem Click Event auf einem li Element. Eigentlich möchte ich nur, in meinem Hauptmenü, das geklickte li Element als active speichern, wenn es angeklickt wurde. Funktioniert ohne Links in der <a href=''> auch ganz gut. Hier mein Javascript.

    Code:
    $(document).ready(function() {
        $('.menuitem').click(function() {
            $('li').removeClass('active');
            $(this).addClass('active');
        });
    });
    Jedes mal wenn ich auf einem Menüpunkt klicke wird dieser als active markiert. Nun habe ich aber angefangen die Links in mein Menü einzutragen und habe nun folgendes Problem.
    Wenn ich auf ein Menüelement klicke wird das Menüelement auf active gesetzt, aber in diesem Moment wird dann zu meinem Link geroutet. Wenn die Seite fertig geladen ist, ist meine active Markierung wieder weg. Ich verstehe hier das Problem, ich weiß aber nicht wie ich es lösen soll.
    Hat da jemand eine Idee?


  • #2
    google: "jquery prevent default"
    (zu Deutsch: Standardaktion unterdrücken)
    Code:
    $(document).ready(function() {
        $('.menuitem').click(function(event) {
            event.preventDefault();
            $('li').removeClass('active');
            $(this).addClass('active');
        });
    });
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      ich will ja das routen zur gewünschten seite nicht unterbinden . Eigentlich habe ich gehofft, das nach dem routen das Element immer noch auf active steht.
      Irgendwie muss es ja möglich sein, nachdem die Seite fertig geladen wurde, das Element auf active zu setzen. Leider kriege ich das nicht hin, weder durch die positionierung des Codes, noch durch ein $(window).load().

      Kann ich beim klick das Element nicht irgendwie abspeichern und nach dem page load eine funktion aufrufen und das geklickte Element auf active setzen?

      Kenne mich mit Javascript leider nicht so aus. Hatte nach ein paar Lösungen gegoogelt, aber das was ich gefunden habe war unbrauchbar. Ich brauch vielleicht irgendein Stichwort.

      Kommentar


      • #4
        Ach jetzt versteh ich glaub ich was du willst. Wozu machst du das ganze mit JavaScript und VOR dem ladevorgang? Du kannst doch auf PHP-Seite jeweils das richtige Menüelement auf Aktiv setzen, jenachdem welche Seite aufgerufen wurde.
        Zitat von nikosch
        Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

        Kommentar


        • #5
          Hmm.. hab da jetzt mal nach gegoogelt. Bei Laravel zum Beispiel gibt es ein Package das mir je nach URL active als String zurückliefert. Meinst du sowas? Oder wie in etwa hättest du es gemacht?
          Ich fände es jetzt etwas aufwendig das mit PHP selber zu machen. Daher dachte ich ist Javascript besser geeignet.

          Kommentar


          • #6
            Und was machst du, wenn jemand per Direktlink auf eine Seite geht? Dann wird keiner der Menüpunkte aktiv sein? Deine Idee mit JavaScript ist einfach Quatsch. Was anderes wäre es, wenn du den Inhalt mit Ajax nachlädst, d.h. keine Weiterleitung stattfindet.
            Zitat von nikosch
            Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

            Kommentar


            • #7
              ok stimmt auch wieder. dann muss ich das wohl doch anders machen. danke

              Kommentar

              Lädt...
              X