2017-02-22 25 views
-1

ich folgende jQuery-Code haben:Ziel dynamisch hinzugefügt Element

$('.class-name').each(function() { 
    $(this).parent().prepend(this); 
}); 

So zielt es .class-name und arbeitet beim Laden der Seite in Ordnung.

Ich möchte, dass es auch auf alle Elemente zielt, die dynamisch (nach dem Laden der Seite) mit Klasse .class-name hinzugefügt wird.

Wie kann ich das tun?

+0

Setzen Sie diesen Code in einer Funktion, es dann wieder aufrufen, nachdem Sie die neue dynamische Inhalte hinzufügen - oder besser noch, sind die vorangestellten Daten in dem, was Sie tatsächlich auf das DOM im ersten hinzufügen place –

+1

@RoryMcCrossan Die dynamisch hinzugefügten Elemente werden von einer Drittanbieterfunktion hinzugefügt und kommen ziemlich zufällig vor. –

+0

Das sind Informationen, die für Ihre Situation lebenswichtig sind und die wirklich in Frage kommen sollten. Stellt die Third-Party-Funktion irgendwelche Ereignisse beim Hinzufügen von Inhalten zur Verfügung? Wenn ja, sollten Sie 'prepend()' innerhalb dieses Ereignisses aufrufen. Wenn nicht, schauen Sie sich MutationObservers an, obwohl sie nicht in allen Browsern unterstützt werden. –

Antwort

0

Verwenden Sie den Handler on, um neu hinzugefügte Elemente auf der Seite dynamisch auszurichten.

$('document').on('event', '.class-name' function() { 
 
    $(this).parent().prepend(this); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+2

Wo genau sehen Sie einen Event-Handler im OP-Code? –

+0

Ich würde annehmen, dass OP Code-Wrapping in irgendeiner Art von Ereignis machen musste. – Rikin

Verwandte Themen