[Resolu] Ajout dynamique onclick et problème d'auto-execution

Ajout dynamique onclick et problème d'auto-execution [Resolu] - HTML/CSS - Programmation

Marsh Posté le 22-01-2008 à 00:49:25    

Bonjour,  
Apres avoir parcouru le forum à la recherche d'une réponse à mon problème
Je me permet de poster ma question ici :  
 
Je souhaite ajouter dynamique à des <img ../> un evenement onclick. Pour cela, j'ai  essayé les différentes méthodes qui  suivent :  
 
[B]img.onclick = nom_fonction(param1,param2)[/B]
==> la fonction s'execute sans atteindre le click sur l'imag
[B]img.onclick = fonction(){nom_fonction(param1,param2)}[/B]
==> la console javascript n'accepte pas cette syntaxe
[B]img.addAttribute('onclick','nom_fonction('+param1+','+param2+')')[/B]
==> fonction uniquement sur firefox
 

Code :
  1. if (del.addEventListener){ //firefox
  2.     del.addEventListener('click',deleteGalerie(idLog,idPhoto), false);
  3. }
  4. else if (del.attachEvent) { //IE
  5.     del.attachEvent('onclick', deleteGalerie(idLog,idPhoto));
  6. }


 
==> la fonction s'execute automatiquement sur les deux navigateurs
 
Finalement aucune des différentes methodes ne fonctionnent :(
 
Voici le code des fonctions concernées :  
 

Code :
  1. function deleteGalerie(idLog,idPhoto){
  2. var req = new Ajax.Request("/ajax.php?action=deleteGalerie&idLog="+idLog+"&idPhoto="+idPhoto,{
  3.        method: 'get',
  4.     onSuccess: function(transport) {
  5.      document.getElementById("thumbnails_galerie" ).innerHTML="";
  6.      afficheGalerie(idLog);
  7.     }
  8. });
  9. }
  10. function addImage(idLog,idPhoto,desc){
  11. var del = document.createElement("img" );
  12. var photo = document.createElement("img" );
  13. var divP = document.createElement("div" );
  14. del.src = "/img/del.png";
  15. del.className="g_del";
  16. divP.className="g_div";
  17. del.style.cursor="pointer"
  18. source = "/upload.php?action=affiche&objet=logiciel-galerie&id="+idLog+"&idPhoto="+idPhoto;
  19. photo.src = source+'&'+new Date()*Math.random();
  20. photo.id = idLog+'_'+idPhoto;
  21. if (del.addEventListener){ //firefox
  22.     del.addEventListener('click',deleteGalerie(idLog,idPhoto), false);
  23. }
  24. else if (del.attachEvent) { //IE
  25.     del.attachEvent('onclick', deleteGalerie(idLog,idPhoto));
  26. }
  27. divP.appendChild(photo);
  28. divP.appendChild(del);
  29. document.getElementById("thumbnails_galerie" ).appendChild(divP);
  30. //del.onclick = function(){deleteGalerie(idLog,idPhoto)}
  31. new Tip(idLog+'_'+idPhoto, desc,{
  32.   className: 'darktip'
  33.   }
  34. );
  35. }


 
Si quelqun a une idée d'où peut venir ce probleme, je suis preneur :D
Merci d'avance.


Message édité par chjerome le 24-01-2008 à 18:53:34
Reply

Marsh Posté le 22-01-2008 à 00:49:25   

Reply

Marsh Posté le 22-01-2008 à 23:50:15    

la meilleure des methodes est celle ci
 
img.onclick = fonction(){nom_fonction(param1,param2)}
 
si la console accepte pas c est plutot etonnant: je m en sers pratiquement tous les jours...
essaie de placer cete ligne apres append c est peut etre ca qui merde


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Marsh Posté le 23-01-2008 à 00:33:28    

j'ai mis ceci a la fin de ma fonction addImage
 

Code :
  1. del.onclick = fonction(){deleteGalerie(idLog,idPhoto)};


 
Ce ne pose plus de probleme à la console, mais le probleme principale reste le meme. La fonction s'execute automatiquement sans attendre un quelconque clic de souris

Reply

Marsh Posté le 24-01-2008 à 18:52:32    

Finalement j'ai  trouvé une solution :  
 
utiliser la methode de prototype :  
 

Code :
  1. Event.observe(suppr, 'click', function() {
  2.  supprGalerie(idLog,idPhoto)
  3. });


Message édité par chjerome le 24-01-2008 à 18:52:48
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed