Après avoir créé dynamiquement trois boîtes p avec ajax, pourquoi cela n'a-t-il pas fonctionné lorsque j'ai lié des événements de clic aux boîtes ? Est-il utile de lui lier des événements uniquement lors de la création d'ajax ? Cela le lie trois fois. Pourquoi est-ce ? Existe-t-il une meilleure façon ?
Par exemple, vous pouvez jeter un œil à l'implémentation de jquery
$(document).on('click','#a',function(){ //TODO }); En empruntant la réponse au premier étage, je pense que vous pouvez d'abord trouver son élément parent, puis le lier
J'ai déjà rencontré ce problème. Utiliser onclick sur un DOM chargé dynamiquement ne fonctionne pas car cela ne fonctionne que sur le DOM existant. Utiliser $(document).on('click','#a',function(){} ) fonctionnera. , vous pouvez l'essayer.
Vous pouvez utiliser la délégation d'événements pour y parvenir, par exemple
Si vous souhaitez ajouter une liste (.list) dans le wrapper, vous pouvez écrire le délégué comme ceci (écriture simple) :
Vous pouvez utiliser la méthode on et la méthode déléguée de JQ. Si elle est native, utilisez la délégation d'événement
.