La fonction $$ [Résolu]

Signaler
Messages postés
106
Date d'inscription
vendredi 29 septembre 2006
Statut
Membre
Dernière intervention
6 mars 2012
-
Messages postés
106
Date d'inscription
vendredi 29 septembre 2006
Statut
Membre
Dernière intervention
6 mars 2012
-
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

Messages postés
106
Date d'inscription
vendredi 29 septembre 2006
Statut
Membre
Dernière intervention
6 mars 2012

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)
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
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.
Messages postés
106
Date d'inscription
vendredi 29 septembre 2006
Statut
Membre
Dernière intervention
6 mars 2012

Bonjour,

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

Merci
Messages postés
106
Date d'inscription
vendredi 29 septembre 2006
Statut
Membre
Dernière intervention
6 mars 2012

Je reste quand même persuadé qu'il existe une autre solution
Messages postés
106
Date d'inscription
vendredi 29 septembre 2006
Statut
Membre
Dernière intervention
6 mars 2012

Bonjour,

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

Merci!