Beim dynamischen Hinzufügen von Elementen zum DOM kann die Erfassung von durch diese Elemente ausgelösten Ereignissen mithilfe von Standard-Ereignishandlern problematisch sein. Dieses Problem entsteht, weil die Ereignishandler angehängt werden, bevor die Elemente erstellt werden, was dazu führt, dass die Ereignisse nicht erfasst werden.
jQuery bietet eine Lösung für dieses Problem durch die Verwendung der .on()-Methode (oder .delegate). () in älteren Versionen). Mit dieser Methode können Sie die Ereignisbehandlung an ein statisches Vorgängerelement delegieren, das bereits vorhanden ist, wenn der Handler gebunden wird. Dadurch wird sichergestellt, dass Ereignisse aufsteigen und vom Handler erfasst werden können.
In Ihrem speziellen Fall können Sie Ihren Code so ändern, dass er die .on()-Methode wie folgt verwendet:
// jQuery 1.7 or above $('#modal').on('keyup', 'input', function() { handler = $(this).val(); name = $(this).attr('name'); });
// jQuery 1.6 oder niedriger
$('#modal').delegate('input', 'keyup', function() { handler = $(this).val(); name = $(this).attr('name'); });
Indem Sie die Ereignisbehandlung an das #modal-Element delegieren, das bereits vorhanden ist, wenn die Ereignishandler gebunden sind, können Sie Ereignisse erfassen ausgelöst durch dynamisch generierte Eingabeelemente innerhalb dieses Elements.
Das obige ist der detaillierte Inhalt vonWie kann ich Ereignisse aus dynamisch hinzugefügten Elementen in jQuery verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!