Ich implementiere eine Bildergalerie mit einem Ajax-Aufruf.
Der Aufruf übergibt einen Wert und ruft einen HTML-Code als Antwort ab. Ich habe diese Antwort überprüft und es ist korrekt.
Und wenn ich diesen Code in ein statisches DIV setze, funktioniert die Galerie ohne Probleme.
Aber wenn ich den Code mit AJAX injiziere, wenn ich auf ein Bild klicke, öffnet es sich im Fenster als normales Bild: das Galerie-Popup funktioniert nicht.
Was könnte die Ursache für dieses Problem sein?
Der Code ist wie folgt
Folgendes ist der HTML-Code auf der Seite
Wenn die Galerie (die Sie nicht angeben) vollständig auf CSS basiert, müssen Sie fast sicher einen Initialisierungscode aufrufen.
Normalerweise wird dies beim Laden des Katalogcodes durch den Katalogcode erledigt:
%Vor% Überprüfen Sie die Galerie-APIs. Angenommen, es gibt einen Aufruf $.gallery()
, um einen Selektor zu gallerisieren. Dann ändern Sie Ihren Code, um
In diesem Fall müssen Sie nur den Klick auf die (Say) A-Tags durch Delegierung abfangen. In dieser Hypothese machen Sie jetzt etwas wie
%Vor%und das funktioniert für diejenigen A's, die statisch existieren. Damit es mit dynamisch hinzugefügten A-Tags funktioniert, sollten Sie
ausführen %Vor%Beachten Sie, dass Sie jetzt das click -Ereignis an #dv_gallery binden, was existiert , und es als Delegat für neu hinzugefügte "a" -Tags angeben, indem Sie einen zusätzlichen Parameter für .on () bereitstellen. .
Wenn die API intelligent genug ist, um ein bereits angereichertes Element nicht zu gallerifizieren, müssen Sie keine Semaphor-Klassen hinzufügen, sondern können einfach
tun %Vor%Oder wenn es nicht ist, aber Sie wissen, dass es eine gegebene Klasse hinzufügt, können Sie diese direkt als Semaphor verwenden:
%Vor%jQuery sollte HTML korrekt anfügen; Wenn dies nicht der Fall ist, überprüfen Sie den Inhaltstyp des zurückgegebenen Dokuments und versuchen Sie es mit
%Vor%oder ersetzen Sie alle den Inhalt der Galerie:
%Vor%In beiden Fällen müssen Sie den erforderlichen Gallerie-Initialisierungscode erneut aufrufen. Diese letzten beiden Optionen sind nur diagnostisch. Wenn sie funktionieren, sagt es Ihnen, dass etwas in dem zurückgegebenen Objekt fischig ist.
Das Problem ist höchstwahrscheinlich, obwohl Ihr Code den Code click
nicht anzeigt, wird er nicht erkannt, weil er nach dem Fakt geladen ist. Nichts mit dem Galerie-Code zu tun.
Versuchen Sie einfach, Ihren Klickcode von z. B.
zu ändern %Vor%An
%Vor%Dies leitet den Klick durch den Körper und sollte dann Ihren Galerie-Code auslösen.
$("#dv_gallery").html(data);
Der obige Code funktioniert für Sie.
Tags und Links javascript html jquery php ajax