jQuery.cliquez sur pas de travail après l'ajout de l'élément du DOM
J'ai un simple jQuery('div#star").cliquez sur(la fonction.
La fonction qui marche une fois lorsque le DOM est chargé pour la première fois, mais à un moment plus tard, j'ai ajouter un div#étoiles pour les DOM, et à ce moment la fonction de clic ne fonctionne pas.
Je suis à l'aide de jQuery 1.4.4, et pour autant que je sais, je ne devrais pas besoin de l'utiliser .en direct ou .lier plus. Il n'y a jamais plus d'un div#étoiles dans les DOM, à tout moment. J'ai essayé de changer de id="star" à l'class="star", mais cela n'a pas aidé.
Des suggestions sur la façon de le faire fonctionner, ou pourquoi il ne fonctionne pas?
J'ai eu l' .cliquez à l'intérieur de l'jQuery(document).prêt, et dans un fichier js externe, et aucun ne fonctionne après l'ajout de la div pour les DOM.
- "Je suis à l'aide de jQuery 1.4.4, et pour autant que je sais, je ne devrais pas besoin de l'utiliser .en direct ou .lier plus." Non, ce n'est pas vrai. Lorsque vous utilisez
click
ou l'un des autres raccourcis pourbind
, vous avez à traiter avec tout ce qui existe à droite, puis. Le but entier delive
etdelegate
est que vous êtes le dire explicitement "comprendre cela plus tard, lorsque l'événement se produit." - Merci TJ, pour une raison que je pense .live a été désapprouvée
Vous devez vous connecter pour publier un commentaire.
Cela fonctionne avec jQuery 2.0.3
De jQuery 1.7, l' .live() la méthode est obsolète. La recommandation actuelle est d'utiliser .sur() qui fournit toutes les fonctionnalités couvrant les précédentes méthodes de fixation des gestionnaires d'événements. Tout simplement, vous n'avez pas à décider plus depuis sur () - t-il tous les.
Documentation est idéalement fournies dans l'aide pour la conversion de l'ancienne jQuery méthodes d'événement .bind(), .délégué(), et .live()
Vous devez toujours utiliser les événements en direct.
http://api.jquery.com/live/
essayer
.on('event', 'element', function(){
//code })
Vous devez utiliser
live
oudéléguer
ici. Rien n'a changé dans ce département depuis jQuery 1.4.4.Essayez de penser à cela comme ceci:
click
etbind
joindre un événement de l'élément lui-même, de sorte que lorsque l'élément disparaît, toutes les informations sur l'événement ne trop.live
attache de l'événement au niveau du document et il comprend des informations sur l'élément et le type d'événement à écouter.delegate
fait la même chose, sauf qu'il attache l'information de l'événement à tout parent de l'élément que vous aimez.utilisateur "live" de la méthode
$("div#star").live("click", function() {});
Doc
Vous pouvez utiliser délégué au lieu sur :
J'espère que ça aidera.