Heim >Web-Frontend >js-Tutorial >Wie kann ich Ereignisse aus dynamisch hinzugefügten Elementen in jQuery verarbeiten?

Wie kann ich Ereignisse aus dynamisch hinzugefügten Elementen in jQuery verarbeiten?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-11 19:50:19653Durchsuche

How Can I Handle Events from Dynamically Added Elements in jQuery?

Verarbeitung von durch dynamisch generierte Elemente ausgelösten Ereignissen

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn