Je ne dois pas être bien réveillé
pourquoi le on ne fonctionne pas ???
voici mon test
http://jsfiddle.net/Ke7Wz/2/
ça passe très bien avec delegate
Code:
1
2
3 $('body').delegate('div span.deleteit','click',function(){ $(this).parent().remove(); })
Version imprimable
Je ne dois pas être bien réveillé
pourquoi le on ne fonctionne pas ???
voici mon test
http://jsfiddle.net/Ke7Wz/2/
ça passe très bien avec delegate
Code:
1
2
3 $('body').delegate('div span.deleteit','click',function(){ $(this).parent().remove(); })
Spaffy... :triste:
Pour utiliser .on() en délégation d'événement, tu le poses sur un élément existant et tu précises en 2e paramètre le sélecteur sur lequel tu veux déléguer. ;)
http://jsfiddle.net/Ke7Wz/8/
EDIT : fiddle mis à jour correspondant mieux à ton exemple ;)
ben je ne l'utilise pas en délégation ... 8O
je cherche juste à ce que les span ajoutés dynamiquement avec la classe .deleteit prennent bein l'attribution de l'evenement click ...
Ben... c'est ça la délégation... :aie:Citation:
je cherche juste à ce que les span ajoutés dynamiquement avec la classe .deleteit prennent bein l'attribution de l'evenement click ...
alors a quoi sert
Code:$('.delete').on('click', function(){ ...})
???
Je pensais au cela permettait d'attribuer un evenement click a un element ajouté dynamiquement ????????????????
Non, ça sert à ajouter un événement "classique" aux éléments .delete présents dans la page ;)
Les selected elements doivent bien exister pour leur affecter un événement. Pour les événements ajoutés dynamiquement, il faut poser l'événement sur un parent existant et spécifier la paramètre selector, ensuite, lorsque l'événement sera déclenché, jQuery vérifiera si l'élément qui a reçu cet événement correspond bien au sélécteur indiqué, donc au moment où tu déclares le gestionnaire, l'élément ciblé peut ne pas encore exister.Citation:
Attach an event handler function for one or more events to the selected elements.
ha je confonds avec l'ancien live() ???
Oui, certainement, mais .live() a été déprécié notamment parce que tous les événements étaient attachés au body, ce qui fait que si ton événement est stoppé lors de sa remontée, il ne peut pas atteindre le body et ne se déclenchera donc jamais.
Une dernière pour la route
quelle est alors l'utilité de la nuance entre delegate() et on() utilsé en delgation ?
Il n'y a pas spécialement de différence entre les deux. En fait, si j'ai bien compris, les développeurs de jQuery ont introduit .on() afin de pouvoir avoir une seule méthode pour gérer tous les événements de façon uniformisée et en ont profité pour déprécier les autres méthodes liées aux événements.
Ok merci de la précision, je ne voyais pas l'utilité du delegate() par rapport au on() delegué ...
Tu confirmes donc mes doutes ...
:merci: