Gestionnaire onclick d'un bouton dans un objet

Résolu/Fermé
lkaiser Messages postés 7 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 12 septembre 2016 - Modifié par lkaiser le 10/09/2016 à 04:01
lkaiser Messages postés 7 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 12 septembre 2016 - 12 sept. 2016 à 00:26
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

maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
10 sept. 2016 à 15:55
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 vendredi 15 avril 2016 Statut Membre Dernière intervention 12 septembre 2016
12 sept. 2016 à 00:26
ca fonctionne exactement comme je le souhaite.
merci beaucoup maka54 !
0