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 :
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 });
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.
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 });
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!