Capture d'événements à partir d'éléments générés dynamiquement
Vous rencontrez un problème où les événements déclenchés par des éléments générés dynamiquement dans un DIV modal ne sont pas capturé par votre gestionnaire d’événements existant. Ce problème survient en raison de la nature dynamique de ces éléments, qui sont ajoutés après la liaison du gestionnaire d'événements.
Pour résoudre ce problème, jQuery propose deux méthodes : .on et .delegate (pour les versions de jQuery antérieures à 1.7 ). Ces méthodes vous permettent de déléguer l'événement à un élément ancêtre statique qui existe lorsque le gestionnaire est lié. Dans ce cas, le DIV modal agit comme l'ancêtre statique.
En utilisant .on ou .delegate, vous pouvez vous assurer que les événements remontent jusqu'à l'élément ancêtre et déclenchent le gestionnaire d'événements, même pour les éléments générés dynamiquement au sein de il. Voici le code mis à jour qui utilise la méthode .on :
$('#modal').on('keyup', 'input', function() { handler = $(this).val(); name = $(this).attr('name'); });
Alternativement, pour les versions de jQuery antérieures à 1.7, vous pouvez utiliser la méthode .delegate comme suit :
$('#modal').delegate('input', 'keyup', function() { handler = $(this).val(); name = $(this).attr('name'); });
En implémentant ceci solution, vous pouvez capturer et gérer efficacement les événements déclenchés par des éléments générés dynamiquement dans le DIV modal, en garantissant que l'entrée de l'utilisateur est enregistrée comme attendu.
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!