Envoyé par : Utilisateur anonyme
Date : 12/04/2006 22:44
la fonction fncHello est appellé correctement apres un clic sur le bouton. Je decide de changer le label du bouton dans cette méthode et j'ai alors une erreur :: this.button has no propreties.
this.button.setAttribute("label","Un bouton cliqué");
Je ne comprend pas l'erreur et comment y remedier. Est ce un probleme d'écriture ?
Merci de votre aide car je ne trouve pas.
Alban
<window id="main" onload=" var x=new classX(); x.init(); " xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" > <script> function classX() { this.init = function() { this.main = document.getElementById("main"); this.button = document.createElement("button"); this.button.setAttribute("label","Un bouton"); this.main.appendChild(this.button); this.button.addEventListener( "command", this.fncHello, false ); // sans () au nom de la fonction } this.fncHello = function() { this.button.setAttribute("label","Un bouton cliqué"); } } </script> </window>
Envoyé par : hhf
Date : 13/04/2006 00:55
dans addEventListener, tu passes une function, tu perds de se fait le contexte de la methode (le fameux this). par contre, si tu fais :
this.fncHello = function(event) { var eSrc = event.target; eSrc.setAttribute("label","Un bouton cliqué"); }
la ca va marcher.
un petit truc quand tu as besoins de trouver les attributs d'un object que tu connais pas, active la console et le dump comme indiqué je sais plus ou sur ce site, et fais ceci.
Exemple ici pour event :
this.fncHello = function(event) { for(var prop in event) dump(" - "+prop+" : "+event[prop]+"\n"); var eSrc = event.target; eSrc.setAttribute("label","Un bouton cliqué"); }
se qui t'afficheras toutes les propriétés et methodes de event.... TADA...
Envoyé par : Utilisateur anonyme
Date : 13/04/2006 08:37
Merci pour cette réponse très comlète. Je n'aurais pas trouvé sans vos explications.
Et merci aussi pour la liste des attributs associés à un object event.
Bonne journée. Alban
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.