Bonjour à tous,
Une question récurrente que je me pose lorsque je développe des applis en javascript : j'ai des objets javascript qui créent des composants html.
J'aimerais que certains évenements sur ces composants html executent des méthodes de mon objet...
Bref, un exemple vaut mieux qu'une explication longue et indigeste :
Mon objet JavaScript, Button, permettant d'afficher un bouton (whaouuu !) :
Maintenant, mon fichier html, dans lequel je créé et affiche mon bouton :
Tout ceci devrait m'afficher un très beau bouton.
OK. Mon problème est donc que sur l'évenement "onclick" de ce bouton, je souhaite executer la methode sayButtonMessage de cet objet...
Mais la, impossible d'ajouter à la méthode displayButton la ligne suivante :
ceci serait très bête et surtout inutile...
Comment feriez-vous pour résoudre ce problème ?
J'ai une solution mais pas satisfaisante qui serait d'utiliser une fonction statique...
Bref, merci d'avance pour vos idées !
(Note: pour info, je tiens à préciser que l'exemple de code cité ci-dessus est débile et tout à fait inutile, je l'ai juste écrit pour expliquer ma question !)
Modifié par Antoine_fr (25 Dec 2006 - 12:16)
Une question récurrente que je me pose lorsque je développe des applis en javascript : j'ai des objets javascript qui créent des composants html.
J'aimerais que certains évenements sur ces composants html executent des méthodes de mon objet...
Bref, un exemple vaut mieux qu'une explication longue et indigeste :
Mon objet JavaScript, Button, permettant d'afficher un bouton (whaouuu !) :
var Button = Class.create();
Button.prototype={
initialize: function(){
},
displayButton: function(){
var button = document.createElement("button");
button.setAttribute("type","button");
button.setAttribute("value","Clique moi!");
document.getElementsByTagName("body")[0].appendChild(button);
},
sayButtonMessage: function(msg){
alert(msg);
}
}
Maintenant, mon fichier html, dans lequel je créé et affiche mon bouton :
<html>
[...]
<body>
<script type="text/javascript">
var button = new Button();
button.displayButton();
</script>
</body>
</html>
Tout ceci devrait m'afficher un très beau bouton.
OK. Mon problème est donc que sur l'évenement "onclick" de ce bouton, je souhaite executer la methode sayButtonMessage de cet objet...
Mais la, impossible d'ajouter à la méthode displayButton la ligne suivante :
button.setAttribute("onclick",this.sayButtonMessage("Hello World!"));
ceci serait très bête et surtout inutile...
Comment feriez-vous pour résoudre ce problème ?
J'ai une solution mais pas satisfaisante qui serait d'utiliser une fonction statique...
Bref, merci d'avance pour vos idées !
(Note: pour info, je tiens à préciser que l'exemple de code cité ci-dessus est débile et tout à fait inutile, je l'ai juste écrit pour expliquer ma question !)
Modifié par Antoine_fr (25 Dec 2006 - 12:16)