Ich habe eine Ajax-Tab-Navigation erstellt, bei der HTML in die Seite eingefügt wurde. Der Code sieht so aus:
%Vor%ok ... also füge ich mein Markup in meinen HTML-Code ein. Jetzt muss ich dom Elemente aus dem eingefügten HTML auswählen, aber ich kann nicht. Ich habe den folgenden Code:
%Vor%Hier erzeuge ich die Auswahloptionen dynamisch. Wenn ich das versuche:
%Vor%es funktioniert nicht. Wie kann ich Javascript verwenden, nachdem ich den HTML-Code über Ajax angehängt habe?
Verwenden Sie Delegate-Ereignis wie on
für Version 1.7 +
Um die Leistung anstelle von body
zu erhöhen, sollten Sie das nächste statische Element (nicht hinzugefügt mit ajax oder javascript) schreiben, das " chapters-select
Wenn Sie eine ältere Version von jQuery
verwenden, wählen Sie die geeignete Methode mit der folgenden Tabelle:
Wenn ein Selektor bereitgestellt wird, wird der Ereignishandler als delegiert bezeichnet. Der Handler wird nicht aufgerufen, wenn das Ereignis direkt auf dem gebundenen Element auftritt, sondern nur für Nachkommen (innere Elemente), die mit dem Selektor übereinstimmen. jQuery bubbelt das Ereignis vom Ereignisziel bis zum Element, an dem der Handler angehängt ist (d. h. innerstes zum äußersten Element) und führt den Handler für alle Elemente auf diesem Pfad aus, die dem Selektor entsprechen.
Event-Handler sind nur an die aktuell ausgewählten Elemente gebunden; Sie muss zu dem Zeitpunkt auf der Seite vorhanden sein, zu dem Ihr Code den Aufruf von .on () aufruft. Um sicherzustellen, dass die Elemente vorhanden sind und ausgewählt werden können, führen Sie das Ereignis aus Bindung innerhalb eines Dokument-Ready-Handlers für Elemente, die sich in der HTML-Markup auf der Seite. Wenn neues HTML in die Seite eingefügt wird, Wählen Sie die Elemente aus und fügen Sie Ereignishandler nach dem neuen HTML-Code hinzu in die Seite gelegt. Oder verwenden Sie delegierte Ereignisse, um ein Ereignis anzuhängen Handler, wie weiter unten beschrieben.
Führen Sie dies einmal nach dem ersten Laden der Seite aus.
%Vor%Dies entspricht der Antwort von @ gdoron, ist aber mit Versionen von jQuery älter als 1.7 kompatibel.
Tags und Links javascript jquery dom ajax