Partage
  • Partager sur Facebook
  • Partager sur Twitter

Evenement onclick et paramètres dynamique

Sujet résolu
    19 avril 2011 à 21:35:18

    Bonsoir. Ca fait bien longtemps que je ne suis pas passé par ici mais la je me heurte à un petit problème. J'ai trouvé une solution que je trouve assez sale, je vous l'exposerait à la fin.

    Donc, j'ai besoin actuellement de récupérer une liste xml (récupéré via ajax). Jusqu'ici aucun problème. Le hic c'est que j'ai besoin de créer des liens sur des balises a que je vais généré en javascript. Donc je parcours ma liste xml et je récupère l'id qui doit être passé en paramètre de ma fonction. Ensuite je fais un bête :
    a.onclick = function(){
    ma_fonction(id);
    }
    


    La, gros problème, le script fonctionne, mais il prend toujours la même valeur d'id, soit la dernière. Je suppose donc que lorsque je clique, il va chercher la valeur dans la variable puis exécute la fonction. J'aurai aimé que la valeur de la variable lui soit affectée directement. Je tente donc d'une autre manière :
    a.addEventListener('click', function(){ma_fonction(id);}, false);
    


    Problème identique. Donc je ne sais trop comment faire quelque chose de propre. J'ai donc contourné un peu en bidouillant avec eval() de cette manière :

    eval('a.onclick = function(){ma_fonction("+id+");}');
    


    Voila, j'aimerai vos avis et j'espère avoir été assez clair dans mes explications.
    • Partager sur Facebook
    • Partager sur Twitter
      19 avril 2011 à 21:44:55

      (function(id) {
          a.onclick = function(){
              ma_fonction(id);
          }
      }(id));
      


      documente toi un peu sur les closures en JavaScript ^^
      • Partager sur Facebook
      • Partager sur Twitter
        20 avril 2011 à 19:33:27

        Merci bien, je vais regarder ça.
        En fait c'est vraiment pratique. Je savais pas du tout que javascript proposait ça et faut dire que vu la syntaxe, on peut pas le deviner comme ça :)
        • Partager sur Facebook
        • Partager sur Twitter

        Evenement onclick et paramètres dynamique

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown