Maison > interface Web > js tutoriel > Comment attacher des gestionnaires d'événements à des éléments HTML créés dynamiquement avec jQuery ?

Comment attacher des gestionnaires d'événements à des éléments HTML créés dynamiquement avec jQuery ?

Patricia Arquette
Libérer: 2024-12-18 19:31:13
original
712 Les gens l'ont consulté

How to Attach Event Handlers to Dynamically Created HTML Elements with jQuery?

Attachement d'événements à des éléments HTML dynamiques avec jQuery

Dans jQuery, attacher des gestionnaires d'événements à des éléments HTML créés dynamiquement nécessite une approche différente par rapport aux éléments statiques. Les éléments HTML dynamiques, ajoutés à la page via des techniques telles que AJAX ou DHTML, manquent de liaisons d'événements à moins qu'ils ne soient explicitement gérés.

Supposons que vous disposiez d'un code jQuery qui attache un gestionnaire d'événements à tous les éléments avec la classe ".myclass". Cela fonctionne de manière transparente pour les éléments présents au chargement de la page, mais attacher des gestionnaires d'événements à des éléments ".myclass" créés dynamiquement présente un défi.

Pour résoudre ce problème, deux techniques peuvent être utilisées :

En utilisant jQuery Méthode .on()

Dans jQuery 1.7 et versions ultérieures, la méthode .live() est obsolète. Au lieu de cela, .on() doit être utilisé pour attacher des gestionnaires d'événements. Cette méthode vous permet de spécifier un sélecteur qui sélectionne l'élément parent et de le combiner avec le sélecteur des éléments dynamiques pour lesquels vous souhaitez gérer les événements.

Par exemple :

$('body').on('click', 'a.myclass', function() {
    // Do something
});
Copier après la connexion

Dans ce Par exemple, le gestionnaire d'événements sera attaché à toutes les balises a avec la classe myclass dans la balise body, qu'elles soient présentes au chargement de la page ou ajoutées dynamiquement ultérieurement.

Utilisation Méthode .delegate() de jQuery

Pour les versions de jQuery antérieures à 1.7, la méthode .delegate() peut être utilisée à la place de .on(). La syntaxe est similaire, vous permettant de spécifier un sélecteur parent et un sélecteur pour les éléments dynamiques :

$('body').delegate('a.myclass', 'click', function() {
    // Do something
});
Copier après la connexion

L'utilisation de l'une ou l'autre de ces techniques garantit que les gestionnaires d'événements sont attachés aux éléments HTML créés statiquement et dynamiquement, ce qui rend c'est pratique pour gérer des événements sur du contenu dynamique.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal