La question suivante est inspirée par Cette entrée de blog sur Ajaxian.com et Ce commentaire de Paul Irish .
Voici un moyen de déclarer l'événement en direct. p> selon cette entrée de blog , c'est ce que je crois comprendre que les événements en direct ne sont qu'un attrapez tout au niveau du document. Tout événement que bulles jusqu'au sommet est capturé par des événements en direct et si le sélecteur correspond à la correspondance, la fonction est appelée. P> C'est ce que je comprends que sur le document prêt si j'invoque p> XXX PRE> Alors tout JQuery devrait faire est de mettre le sélecteur littéral 'Li A' en mémoire quelque part. Maintenant, lorsqu'un clic survient et si cela cliquez sur Bulles tout au long du haut, la lecture devrait-elle vérifier quel est l'élément cible. Si l'élément cible satisfait la règle de «LI A», la fonction doit être déclenchée autrement ignoré cet événement de bouillot. P> sur la base de cette présomption sur le document prêt lorsque j'appelle P> $.live('li a', 'click', function(){})
4 Réponses :
Il y a une manière non documentée au moment où cela fonctionnerait sans sélectionner auparavant les éléments ceci vous permet de définir le gestionnaire en direct sans jQuery correspondant aux éléments qui existent actuellement dans le dom. Il ignore quand même. p> p>
J'ai piraté autour de ce problème en prouvant la recherche ():
Ma compréhension de la raison pour laquelle il attrape tous les éléments du DOM, c'est parce que c'est la fonction $ (). Après avoir sélectionné les éléments DOM, il exécute la fonction Live (). P>
Dans ce cas, vous auriez besoin d'utiliser l'une des solutions de contournement suggérées ailleurs dans les réponses ici. P>
Vous avez l'air familier avec le concept et besoin de performances. Je suggérerais d'utiliser explicitement une délégation d'événements plutôt que live code> est simplement un moyen de donner une délégation d'événements aux personnes qui ne le comprennent pas facilement. live code>. P>