8
votes

jquery listener ne "écoute" pas à des événements sur des éléments DOM créés de manière dynamique

J'ai un auditeur comme ceci: xxx

Également, sur la même page, un autre script ajout de manière dynamique des éléments au DOM de cette manière: xxx

Mon problème est que l'auditeur ne "écoute" pas sur ces éléments créés de manière dynamique.

Peut-on perdre une certaine lumière s'il vous plaît?


0 commentaires

4 Réponses :


15
votes

Il n'écoutera que sur des éléments existants lorsque vous avez lié le gestionnaire d'événements. Si vous souhaitez écouter des éléments créés de manière dynamique, vous souhaitez utiliser le Live () fonction, qui fonctionne avec des éléments actuels et futurs.

Edit: AS de JQuery 1.7, la manière recommandée est d'utiliser le .on () fonction , qui remplace .bind () , .live () et .Delegate () en fournissant toutes les fonctionnalités requises pour la fixation de gestionnaires d'événements.


1 commentaires

Merci. Dans mon cas, j'ai dû ajouter l'événement à mon élément de document comme celui-ci: $ (document) .on ("cliquez sur", ". MyButton ', fonction () {// manutention});



0
votes

sûr.

L'auditeur dynamique n'est pas dynamique. p>

$('.delete').click(function() {


0 commentaires

1
votes

Oui, consultez la fonction JQuery Live. N'oubliez pas non plus de lier et d'innover les événements. Avait des problèmes dans lesquels le lien a continué à devenir lié à chaque fois qu'il a été créé, mais que la page ne rechargait pas le lien aurait 5 ou 6 clics les événements liés à elle et causait des problèmes. Il suffit de contenir des événements au lien.


0 commentaires

4
votes

événements de liaison à un élément qui n'existe pas encore est impossible. La façon dont vous pouvez y parvenir, comme le yogourt le sage exprimé, utilise "ON" et spécifiant le sélecteur que vous souhaitez utiliser comme deuxième paramètre de la fonction.

this.$someStaticParent.on('click', 'li', functionName); 


0 commentaires