Also habe ich etwas Code und ich füge ein Element zum DOM nach dem Seitenladen hinzu (der zweite Link im folgenden Beispiel), aber dieses neu hinzugefügte Element ignoriert alle dafür definierten Funktionen. Für das Beispiel unten möchte ich, dass alle Links in divs mit der Testklasse eine Warnung anzeigen. Funktioniert gut für den Link hart codiert, aber der später hinzugefügte Link ignoriert es.
%Vor%BEARBEITEN : Ist die einzige Lösung, um es mit einem jQuery-Plugin zu abstrahieren?
Ihr Problem ist, dass click()
einen Ereignis-Listener an jedes Element in der aktuellen übereinstimmenden Menge bindet. Es ist keine Magie und es wird den Ereignis-Listener nicht rückwirkend auf neuen Inhalt anwenden, den Sie dem DOM hinzufügen. Ihre Optionen sind:
Wenn Sie jquery live verwenden, wird dieses Problem behoben. jquery live Bindet einen Handler an ein Ereignis (wie einen Klick) für alle aktuellen und zukünftigen übereinstimmenden Elemente.
%Vor%Dein Code kann aufgeräumt werden und sich so verhalten, wie du es dir erhoffst:
%Vor%Hinweis: Live ist auf jQuery 1.9
nicht verfügbar