La fonction $$

Résolu
alexflex25 Messages postés 106 Date d'inscription vendredi 29 septembre 2006 Statut Membre Dernière intervention 6 mars 2012 - 24 sept. 2009 à 23:21
alexflex25 Messages postés 106 Date d'inscription vendredi 29 septembre 2006 Statut Membre Dernière intervention 6 mars 2012 - 27 sept. 2009 à 10:58
Bonjour,
Je viens encore une fois vers vous car j'ai un petit problème...je m'explique.
J'utilise une fonction JavaScript qui parcours une liste d'objet et qui ajoute une valeur à la propriété "onclick" de ces objets. Le problème est que je n'arrive pas à faire référence à cet objet dans la fonction que j'associe à la propriété "onclick"

Voici un exemple pour mieux comprendre:

//Je récupère la liste des éléments de la class "className1" (OK) 
var elementCliquable = $$('td.className1');  

//Je parcours la liste des objets (OK)
for(var i=0;i<elementCliquable.length;i++){
     //J'ajoute une valeur à la propriété "onclick" de chaque élément (OK)
     elementCliquable[i].onclick = function(){
          //Voila c'est ici que je veux faire référence à l'objet 'elementCliquable[i]'
          //Par exemple : Pour changer le style de l'élément cliqué
          this.style.backgroundColor = 'black'; //ceci ne marche pas
          //puisque "this" ne fais pas référence à l'objet 'elementCliquable[i]'          
}.bind(this);

Je me rend bien compte que cet exemple est ridicule, mais il montre très clairement mon problème.
Pour reformuler:
Comment faire référence à mon élément "elementCliquable[i]" dans ma définition de fonction.

Merci beaucoup de votre aide!

5 réponses

alexflex25 Messages postés 106 Date d'inscription vendredi 29 septembre 2006 Statut Membre Dernière intervention 6 mars 2012
25 sept. 2009 à 21:38
Re bonjour,

Voila la seul solution que j'ai trouvé:

objet = $(elementCliquable[i]);
$(elementCliquable[i]).onclick = function(objet) {
     //ici j'utilise "objet" comme référence à "elementCliquable[i]"
     objet.getHeight();
}.bind(this,objet)
3
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
25 sept. 2009 à 21:43
Tu peux tout simplement "binder" ton élément cliquable sur le contexte de ta méthode.

$(elementCliquable[i]).onclick = function() {
      this.style.backgroundColor = 'black';
}.bind(elementCliquable[i])


Ainsi le contexte de ta fonction onclick devient l'élément cliquable.
3
alexflex25 Messages postés 106 Date d'inscription vendredi 29 septembre 2006 Statut Membre Dernière intervention 6 mars 2012
25 sept. 2009 à 21:31
Bonjour,

Je voulais juste savoir si personne n'avait compris mon problème?
Me suis-je mal exprimé?

Merci
0
alexflex25 Messages postés 106 Date d'inscription vendredi 29 septembre 2006 Statut Membre Dernière intervention 6 mars 2012
25 sept. 2009 à 21:39
Je reste quand même persuadé qu'il existe une autre solution
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alexflex25 Messages postés 106 Date d'inscription vendredi 29 septembre 2006 Statut Membre Dernière intervention 6 mars 2012
27 sept. 2009 à 10:58
Bonjour,

Fantastique... magnifique...
Je savais bien qu'il me manquait un élément...

Merci!
0
Rejoignez-nous