Gestionnaire onclick d'un bouton dans un objet

Résolu
lkaiser Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
lkaiser Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -
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 698 Date d'inscription   Statut Membre Dernière intervention   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 Date d'inscription   Statut Membre Dernière intervention  
 
ca fonctionne exactement comme je le souhaite.
merci beaucoup maka54 !
0