set handler dans une classe [Javascript] - HTML/CSS - Programmation
Marsh Posté le 02-11-2005 à 18:29:50
Bonjour,
Normallement, il n'y a pas de problèmes pour utiliser les handlers dans un objet ...
Essaye de faire l'assignation de l'handler après avoir ajouté le noeud au document (this.newDiv.onmousedown=function(event) { publicGetId();} après
document.getElementById('divContainer').appendChild(this.newDiv); )
sinon, avec cette méthode, tu risque de ne pas récupérer l'event, voici un exemple de ce que j'utilise:
Code :
|
Sinon, va faire un tour dans sur le site http://www.quirksmode.org/ rubrique Javascript/event, tu y trouvera une foule d'information pour t'aider ...
Marsh Posté le 03-11-2005 à 09:48:33
D'abord merci mais
Je n'ai pas dit qu'il y avait un problème pour utiliser un handler dans mon objet mais plutot pour utiliser une méthode de mon objet dans le handler ...
En gros mon problème c'est que quand je déclare la fonction de mon handler, le 'this' que j'y mets ne represente pas l'objet de ma classe Test mais l'objet (div) sur lequel l'event a lieu.
Donc fort logiquement il me sort que la fonction publicGetId est inconnue.
[edit]
Ah et mettre le handler après que le div ait été ajouté cela ne change rien
[/edit]
Marsh Posté le 03-11-2005 à 10:21:35
J'ai trouvé une solution pour ceux que ça interesseraient:
Code :
|
Marsh Posté le 02-11-2005 à 17:08:46
Alors voila j'ai cette classe javascript:
et cette page html pour tester:
La construction des objets Test se passe très bien.
Le problème se trouve sur les handlers que je rajoute sur chacun d'eux:
Dans les deux cas ( et aussi bien sous FF que IE ) les fonctions ne sont pas connues.
Je pense savoir pourquoi: les deux fonctions publicGetId et privateGetId ne sont connues que des objets Test. Or elles sont appelées par un click sur le div crée et non sur mon objet, donc ... ça marche pô!!!
D'ou ma question: Y a-t-il un moyen d'appeler des fonctions de ma classe dans ces handlers ou dois-je obligatoirement déclarer ces fonctions en dehors de ma classe ( ce qui ne me plairait pas trop)?
D'avance merci!
[edit: commentaires ajoutés]
Message édité par anapajari le 02-11-2005 à 17:45:31