Bonjour à tous,

je souhaite attribuer un argument à une fonction ajoutée en DOM sur des boutons créer dans une boucle.

Mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
function createBoutons()
     {
     this.boutons = null ;
     this.bouton = null ;
     }
 
createBoutons.prototype.assignEvent = function()
     {
     var objet = this ;
     for(var 1 = 0; i < boutons.length; i++)
          {
           bouton = document.getElementById(boutons[i])  ;
           bouton.onclick = function(){ objet.catchEvent(i) ; } ;
          }
     }
 
createBoutons.prototype.catchEvent = function(value)
     {
     alert(value) ;
     }
 
var cBtn = new createBoutons()  ;
cBtn.boutons = Array("btn1", "btn2", "btn3")  ;
cBtn.assignEvent() ;
Lors d'un clic sur n'importe lequel des boutons l'argument "value" à toujours la même valeur, c'est à dire la dernière valeur qu'à pris "i". Si j'ai trois boutons "value" vaudra deux, si j'ai quatre boutons "value" vaudra trois.

Je souhaiterai savoir comment faire pour que les arguments de chaque boutons correspondent au "i" au moment de la création de l'écouteur d'évènement "onclick" et aussi comment savoir de quel bouton provient l'évènement.

Merci à tous pour vos réponses.