11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous =)

Vu que ça fait des heures que j'essaye de trouver une solution à mon problème, je me tourne vers vous. J'espère que vous aurez un peu de temps pour essayer de m'indiquer où je fais fausse route.

Voilà, pour résumer mon problème, je me suis fait un exemple plus simpliste dont je met le code ci-dessous.

<html>
<head>
<title>Essai</title>
<script>
function change(texte) {
	this.txt = texte;
};

change.prototype.affiche = function() {
	var myDiv = document.createElement("div");
	myDiv.setAttribute("id", "test");
	document.getElementsByTagName("body")[0].appendChild(myDiv);
	myDiv.style.background = "#cccccc";
	myDiv.innerHTML = '<button onclick="this.couleurTexte()">Changer la couleur du texte</button><br><br>'+this.txt;
};

change.prototype.couleurTexte = function() {
	var div = document.getElementById("test");
	div.style.color = "#ff0000";
};

var action = new change('bla bla bla');
</script>
</head>
<body onload="action.affiche()">
</body>
</html>


J'ai donc créé une classe "change" qui prend en paramètre un texte. Lorsque j'appelle la méthode affiche(), cela me crée un <div> dans la page dans lequel je vais générer du texte dynamiquement, avec innerHTML par exemple. Dans ce texte, j'aimerais pouvoir mettre un bouton, et lorsqu'on clique dessus, il fait appel à la méthode couleurTexte(), changeant la couleur du texte comme son nom l'indique. Et c'est justement ici que ça bloque. L'appel à la fonction couleurTexte ne marche pas...

A la base, je bosse sur un ptit projet dans lequel je met en oeuvre des popups interne à la page, avec un contenu générer dynamiquement avec des XMLHTTPREQUEST; et je fais intervenir logiquement un lien "fermer" faisant appel à une méthode, mais le même problème intervient...

En gros, comment peut-on appeler une méthode dans une méthode =)

Si quelqu'un peut m'aider, ça serait vraiment cool =)
Merci à vous tous. Smiley smile
Modifié par Gunn (10 Jul 2006 - 16:30)