par
jobillum » 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
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 :
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,
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 : "[b]this.getPos is not a function[/b]" dans la fonction [b]init()[/b].
[code]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);
}
};[/code]
En désespoir de cause j'ai tenté de la faire avec un namespace mais ça ne change rien :x
[code]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();
}
};
}();[/code]
La classe est initialisée dans le body comme ça :
[code]addEvent(window.document, 'mousemove', Tracking.init);
[/code]
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,