Maison >interface Web >js tutoriel >Comment puis-je gérer les événements sur les éléments générés dynamiquement dans jQuery ?

Comment puis-je gérer les événements sur les éléments générés dynamiquement dans jQuery ?

DDD
DDDoriginal
2025-01-03 17:59:42330parcourir

How Can I Handle Events on Dynamically Generated Elements in jQuery?

Gestion des événements pour les éléments générés dynamiquement

Lorsque vous générez dynamiquement des éléments à l'aide de méthodes telles que Load() ou Click() de jQuery, la capture des événements déclenchés par ces éléments peut être un défi. Les gestionnaires d'événements standard attachés aux éléments statiques peuvent ne pas fonctionner pour les éléments générés dynamiquement.

La solution : la délégation d'événements

La délégation d'événements est une technique qui vous permet de gérer des événements qui jaillissent d’éléments créés dynamiquement. En déléguant l'événement à un élément ancêtre statique, vous vous assurez qu'il existe lorsque le gestionnaire d'événements est lié.

Utilisation de la méthode .on() de jQuery

Pour les versions jQuery 1.7 ou supérieur, utilisez la méthode .on() pour déléguer l'événement :

$('#modal').on('keyup', 'input', function() {
    handler = $(this).val();
    name = $(this).attr('name');
});

En utilisant Méthode .delegate() de jQuery (anciennes versions)

Pour les anciennes versions de jQuery (1.6 ou inférieure), utilisez plutôt la méthode .delegate() :

// Note the different order of selector and event
$('#modal').delegate('input', 'keyup', function() {
    handler = $(this).val();
    name = $(this).attr('name');
});

En utilisant l'événement délégation, vous pouvez gérer efficacement les événements déclenchés par des éléments générés dynamiquement sans vous soucier de l'ordre de création des éléments et de la liaison des événements.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn