177 votes

fonction de .sur jQuery pour les éléments futurs, comme .séjournez est déconseillée

J'ai besoin d'ajouter un gestionnaire pour l' click de <div> éléments, qui n'existent pas encore. Normalement, je voudrais utiliser du jQuery .live fonction pour gérer cela, mais il semble que c'est maintenant dépréciée en faveur de l' .on.

Pour utiliser l' .on méthode de cette manière, jQuery propose de mettre le sélecteur de paramètre, afin de permettre la création d'un délégué de l'événement, et offre cet exemple de code:

$("#dataTable tbody").on("click", "tr", function(event){
    alert($(this).text());
});

C'est tout beau et bon, mais que dois-je mettre dans mon intial sélecteur, où ils ont #dataTable tbody? Notez que $.on() ne fonctionne pas.

298voto

wrschneider99 Points 5119

jQuery documentation montre de remplacer

$(selector).live(event, handler) 

avec

$(document).on(event, selector, handler).

Vous avez également l'option pour être plus précis et remplacez - $(document) avec un sélecteur pour une charge statique parent de l'élément. Par exemple, si vous avez un statique table d'élément et d' tr des éléments sont ajoutés dynamiquement pour les DOM, vous pourriez faire quelque chose comme $('table#id').on('click', 'tr', ...)

http://api.jquery.com/live/

39voto

Brad Points 61171

J’ai juste pensé à elle dès que j’ai posté cette question... Désolé !

Le sélecteur initial peut être tout élément parent. Puisque mes éléments seront utilisés comme enfants directs du corps, je peux utiliser `` pour le sélecteur :

Ceci fonctionne parce que les événements vont à bulle vers le haut. Il s’agit essentiellement normale bouillonnant avec un filtre supplémentaire de `` .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X