Gestionnaire onclick d'un bouton dans un objet

Résolu
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

1 réponse

  1. 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
    1. ca fonctionne exactement comme je le souhaite.
      merci beaucoup maka54 !
      0