|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : août 2008 Messages : 66 ![]() |
Bonsoir,
Je travaille avec le DOM en jquery, j'affiche des images uploadées par l'utilisateur, puis l'utilisateur peut les supprimer de l'écran (en cliquant sur une petite croix rouge, image dont la classe est delete). Sauf que je ne sais pas pourquoi, la fonction de suppression est parfois exécutée plusieurs fois, alors qu'appelée une seule fois ! voici mon code commenté : Code :
CORRECTION : Voici le code fonctionnel, le souci venait de la fonction s'occupant de l'envent $(".delete").click(function().. qui n'était pas assez spécifique, l'ajout d'un id unique dans la selection est donc adéquat, comme ceci : $("#"+id+" img").click(function() Code :
|
||||
|
|
00
|
|
|
#2 | ||
|
Membre habitué
![]() eric Étudiant Inscription : décembre 2010 Messages : 103 ![]() |
Bonjour,
pour moi ton code va bien, il n'execute supprimer image qu'une fois, lorsque l'icone de suppression est cliquée. par contre, comme l'icone de suppression est sur l'image, l'évènement associé au clique sur l'image est aussi déclenché, pour moi ca fait apparaitre une nouvelle image (la meme) à la suite. je ne sais pas si je t'ai aidé, mais j'ai observé ce que donne ton code en testant juste ca dans une page vierge , et le body qui porte l'id results Code :
|
||
|
|
00
|
|
|
#3 | ||
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 221 ![]() |
Bonsoir
Code :
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & CoSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
||
|
10
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : août 2008 Messages : 66 ![]() |
Bonsoir,
Merci à tous les deux. Le souci venait en fait du handler qui était associé à de nombreuses balises, j'ai rajouté une dépendance à l'id : Code :
$("#"+id+" img").click(function() {... |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : août 2008 Messages : 66 ![]() |
danielhagnoul je m'aperçois que j'avais répondu à côté, le return false; il est indispensable? car je lis énormément de code qui n'a jamais de return false.. ?
Une autre question, a priori on essaye d'éviter le plus possible les variables globales, ici mon compteur, il y a une technique pour éviter cela ? (je lisais dans ton cahier d'exercice les clôtures, ça peut servir pour ça ?) |
|
|
00
|
|
|
#6 |
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 221 ![]() |
Bonsoir
Le return false évite l'action par défaut et la propagation des événements. La clôture permet de travailler dans un espace clos, mais je n'ai pas assez de temps pour voir si c'est utile pour votre code. Par contre, il ne faut jamais déclarer des gestionnaires d'événements dans une fonction qui sera appelée plus d'une fois, car vous créez autant de fois l'événement que vous appelez la fonction. C'est sans doute l'origine de votre problème pour la suppression.
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & CoSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
|
00
|
|
|
#7 | |
|
Candidat au titre de Membre du Club
![]() Inscription : août 2008 Messages : 66 ![]() |
Citation:
|
|
|
|
00
|
|
|
#8 | ||
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 221 ![]() |
Un gestionnaire d'événement $(".delete").click(function() { ... }); est créé chaque fois que vous appelez la fonction Ajouter_photo et il n'est pas spécifique à une photo.
Petit code de test : Code :
clic sur la section conteneur new-qr1.html (ligne 69)
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & CoSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
||
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : août 2008 Messages : 66 ![]() |
Je répète que ma fonction a été corrigée par rapport au premier post :
C'est donc bel et bien spécifique. Je vais updater mon premier post pour être plus clair |
|
|
00
|
|
|
#10 |
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 221 ![]() |
Ha ! Je n'avais pas vu
Mais je vais laisser le message, il servira sans doute encore dans le futur.
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & CoSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
|
00
|
Copyright © 2000-2012 - www.developpez.com