ajax Antwort muss einem div zugewiesen werden

8

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

%Vor%

Folgendes ist der HTML-Code auf der Seite

%Vor%
    
Mathew 01.07.2015, 11:14
quelle

4 Antworten

6

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

zu lesen %Vor%

Beispiel mit einer benutzerdefinierten Galerie basierend auf .click ()

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. .

Beispiel mit FancyBox:

%Vor%

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%

Diagnose nicht offensichtlicher Probleme mit zurückgegebenem HTML

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.

    
LSerni 01.07.2015 11:22
quelle
2

Haben Sie versucht, die Funktion html () von jquery zu verwenden?

%Vor%     
J-H 01.07.2015 11:23
quelle
0

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.

    
Darren Sweeney 01.07.2015 11:35
quelle
0

$("#dv_gallery").html(data);
Der obige Code funktioniert für Sie.

    
anilviradiya 01.07.2015 11:27
quelle

Tags und Links