Gestionnaire onclick d'un bouton dans un objet

Résolu
lkaiser Messages postés 7 Statut Membre -  
lkaiser Messages postés 7 Statut Membre -
Bonjour a tous,

je me débrouille un peu en javascript mais la je tombe sur un os.
Je souhaite affecter une fonction à un onclick sur un bouton que je créé dynamiquement au sein d'un objet.
Voici en dessous un résumé du code.
La méthode affiche(nom,elem) créé dynamiquement un bouton que je souhaiterais relier par le onclick à la méthode active().
Ca ne devrait pas être sorcier ... sauf pour moi

var divDate1 = document.getElementById("div1");
var divDate2 = document.getElementById("div2");

function MonObjet() {
   this.name = '',
   this.active = function(){
       alert('Salut '+this.name);
   },   
   this.affiche = function(nom,elem){
       this.name = nom;
       elem.innerHTML='<input type="button" onclick="this.active();" value="'+nom+'">';
   }; 
}    
        
        var t1 = new MonObjet();
        t1.affiche('Stephane',divDate1);        
        var t2 = new MonObjet();
        t2.affiche('Aurélie',divDate2);


Merci pour vos conseils

A voir également:

1 réponse

maka54 Messages postés 721 Statut Membre 80
 
Bonjour,

Dans ton button, this ne fait pas référence à MonObjet donc active n'existe pas.

au lieu de faire un innerHTML, tu peux faire :

var btn = document.createElement('button');
btn.setAttribute('name', this.name);
btn.addEventListener('click', this.active, false);
elem.body.appendChild(btn);
0
lkaiser Messages postés 7 Statut Membre
 
ca fonctionne exactement comme je le souhaite.
merci beaucoup maka54 !
0