Ich bin ein Neuling in jQuery und ich blieb eine Weile mit einem Problem stecken. Ich versuche, alle Links zu einer externen Seite zu finden und ihnen ein Attribut target = "_ blank" hinzuzufügen. Bisher habe ich das folgende Skript erstellt:Ziel hinzufügen auf dynamisch hinzugefügte Elemente
$(document).on('load',function() {
$('a').each(function() {
if (location.hostname !== this.hostname) {
$(this).attr('target', '_blank');
}
});
});
Dies funktioniert gut auf den Elementen, die auf der Seite in der ersten Instanz geladen werden, aber wenn neue Elemente hinzugefügt werden dynamisch es nicht wieder Feuer das Ziel hinzufügen Attribut. Ich habe versucht, die "ready" -Funktion auf "on ('load')" zu ändern, aber ohne Erfolg.
Jede Hilfe wird sehr geschätzt und ich bin dankbar für die Leute, die eine Sekunde brauchen, um dumme Fragen wie diese zu beantworten.
Edit: Ich erstellte und unendlich Scroll-Skript, das mehr Elemente durch einen AJAX-Aufruf lädt. Diese Elemente enthalten "a" -Tags und ich möchte, dass das Skript für sie erneut ausgeführt wird.
Was meinen Sie Elemente durch die adde sind Dynamisch? Wie fügen Sie diese hinzu? Sowohl die Lade- als auch die Bereit-Funktion werden einmal ausgeführt, wenn das Dokument fertig oder geladen ist, so dass die Funktion nur für die Elemente ausgeführt wird, die beim ersten Mal in das DOM geladen werden. Wenn Sie irgendwie neue Links durch JQuery oder JS hinzufügen können, müssen Sie das Attribut wieder leer hinzufügen. Sei in diesem Sinne expliziter und ich denke, dass ich richtig antworten kann. – DanielPanic
Die beste Lösung wäre ein * Mutation Observer * https://stackoverflow.com/questions/13277212/mutation-observer-for-creating-new-elements –