Erreur imcompréhensible

jobillum
Invité n'ayant pas de compte PHPfrance

02 mai 2010, 11:01

Bonjour tout le monde,

Je m'essaye au js orienté objet mais là ça coince et je ne comprend vraiment pas pourquoi...
C'est une classe qui récupère les coordonnées de la souris, et la console Firefox renvoie une erreur : "this.getPos is not a function" dans la fonction init().

Code : Tout sélectionner

var Tracking = { xy : [], allpos : [], event : null, init : function(e) { this.event = (!e) ? window.event : e; this.getPos(); }, getPos : function() { if (this.event.pageX || this.event.pageY) { this.xy = [e.pageX, e.pageY]; } else if (this.event.clientX || this.event.clientY) { this.xy = [ e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft, e.clientY + document.body.scrollTop + document.documentElement.scrollTop ]; } this.addPos(); alert(this.xy[0]+'-'+this.xy[1]); }, addPos : function() { this.allpos.push(this.xy); } };
En désespoir de cause j'ai tenté de la faire avec un namespace mais ça ne change rien :x

Code : Tout sélectionner

var Tracking = function() { var xy, allpos, event; function getPos() { if (this.event.pageX || this.event.pageY) { this.xy = [e.pageX, e.pageY]; } else if (this.event.clientX || this.event.clientY) { this.xy = [ e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft, e.clientY + document.body.scrollTop + document.documentElement.scrollTop ]; } this.addPos(); alert(this.xy[0]+'-'+this.xy[1]); } function addPos() { this.allpos.push(this.xy); } return { init : function(e) { this.xy = []; this.allpos = []; this.event = (typeof(e) == 'undefined') ? window.event : e; this.getPos(); } }; }();
La classe est initialisée dans le body comme ça :

Code : Tout sélectionner

addEvent(window.document, 'mousemove', Tracking.init);
Donc voilà je ne sais vraiment pas où chercher, j'imagine que ça doit être une erreur de syntaxe mais pas moyen de la corriger.
SVP auriez-vous une piste ou la solution à ce fichu problème ? Je suis complètement bloqué...

Merci beaucoup pour votre aide,

jobillum
Invité n'ayant pas de compte PHPfrance

02 mai 2010, 12:42

C'est bon, solutionné ici grâce à emmanuel.remy.
Bueno !

ViPHP
ViPHP | 3607 Messages

02 mai 2010, 15:38

Merci pour le retour ;)
ça servira à d'autres!