In der Dokumentation von jQuery habe ich zwei Lösungen gefunden:
Erstens: Delegieren auf Body oder Dokument verwenden
z.B:
$("body").delegate('.test', 'click', function(){
...
alert('test');
});
Warum?
Antwort: Anhängen eines Handlers an ein oder mehrere Ereignisse für alle Elemente, die dem Selektor entsprechen, jetzt oder in Zukunft, basierend auf einer bestimmten Gruppe von Root-Elementen. Link: http://api.jquery.com/delegate/
Zweitens: Setzen Sie Ihre Funktion in die "$( document )" , mit "ein" und fügen Sie es an das Element an, das dieses Ereignis auslösen soll. Der erste Parameter ist der "Event-Handler", der zweite: das Element und der dritte: die Funktion. Z.B.:
$( document ).on( 'click', '.test', function () {
...
alert('test');
});
Warum?
Antwort: Event-Handler sind nur an die aktuell ausgewählten Elemente gebunden; sie müssen auf der Seite vorhanden sein, wenn Ihr Code den Aufruf an .on() . Um sicherzustellen, dass die Elemente vorhanden sind und ausgewählt werden können, führen Sie eine Ereignisbindung innerhalb eines Document Ready-Handlers für Elemente durch, die im HTML-Markup der Seite enthalten sind. Wenn neues HTML in die Seite eingefügt wird, wählen Sie die Elemente aus und fügen Ereignishandler hinzu, nachdem das neue HTML in die Seite eingefügt wurde. Oder verwenden Sie delegierte Ereignisse, um einen Ereignishandler anzuhängen, wie im Folgenden beschrieben ... Link: https://api.jquery.com/on/