jQuery nur auf per Ajax geladene Inhalte "anwenden"

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

  • jQuery nur auf per Ajax geladene Inhalte "anwenden"

    Guten Morgen,

    ich knobele schon seit ca. 4 Stunden an einem kleinen Problem herum.

    Ich habe jQuery auf meiner Seite und versuche nun mittels Fancybox Popups zu erzeugen (Inhalt wird mit Ajax geholt).

    Der Inhalt dieser Popups kann ebenfalls Inhalte welche mit meinen Standard jQuery Selektoren durcharbeiten möchte.

    Wenn ich nun meine jQuery Selektoren in eine getrennte JS-Datei auslagere und diese mit einem Script-Tag in meine Ajax Inhalte packe, dann funktioniert das auch erstmal. Allerdings habe ich nun das Problem das auch außerhalb meines Ajax-Contents die Selektoren noch einmal durchlaufen.

    Dies führt dazu das alle nicht-Ajax-Inhalte viele Regeln teilweise doppelt verpasst bekommen, was bei den QTips zu einem üblen Flackern führt, da er die pro Ajax-Aufruf nun einmal mehr rendert, etc...

    Als Lösungsansatz habe ich nun sämtlichen jQuery Selektor-Zielen die per Ajax reinkommen eine zusätzliche CSS-Klasse "ajax-loaded" verpasst. Dann meine Datei mit den jQuery Standard-Selektoren kopiert und halt überall die Bedingung für diese Klasse angehängt. Das funktionert dann wie gewünscht.

    Aber...! Jetzt bin ich natürlich am grübeln. Was passiert wenn ich innerhalb meines Ajax-Popups erneut Teil-Inhalte per Ajax nachladen will und auf diese wiederum jQuery laufen lassen will. Da komme ich dann erneut ins Schwimmen, da ja dann alles im Popup neu gemacht würde, und nicht nur der Ajax-Teil...

    Soweit bin ich bis jetzt...

    Entweder ich verzichte auf Ajax im Popup und lebe mit 2 getrennten jQuery-Init Files oder mir fällt noch irgendwas ein...

    Gruß & Danke für jeden Hinweis :-)

  • #2
    Hallo,

    ich konnte dir leider nicht folgen

    Kannst du deine Frage in mit Beispielen illustrierte Teilfragen zerlegen oder/und ggf. ein erläutertes Onlinebeispiel zur Verfügung stellen?

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Na dann setze halt bei den Elementen, die schon bearbeitet worden sind, irgendeine Art Flag, welches du vor der (erneuten) Bearbeitung abfragst.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Also ich bin auch nicht ganz sicher, ob ich dich verstanden habe. Aber vielleicht wäre es eine Alternative, wenn du die nachgeladenen Elemente gezielt mit Effekten versorgst.

        Kommentar


        • #5
          Zitat von wahsaga Beitrag anzeigen
          Na dann setze halt bei den Elementen, die schon bearbeitet worden sind, irgendeine Art Flag, welches du vor der (erneuten) Bearbeitung abfragst.
          Ah, ich hab mal wieder den Wald vor lauter Bäumen nicht gesehen. Auf diese Idee bin ich zwar auch schon gekommen, aber aus der falschen Richtung. Ich hab den neuen Ajax-geladenen Elementen ja eine eigene Klasse verpasst. Aber darauf das ganze einfach mit einer Abarbeitungs-Flag zu regeln bin ich noch nicht gekommen.

          Das müsste eigentlich funktionieren. Ich werde das heute abend mal testen. Dankeschön :-)

          Kommentar

          Lädt...
          X