Ho il seguente problema nei gestori di eventi in Javascript. Ho un oggetto che ha un gestore di eventi mousemove in questo modo.Oggetto Javascript globale che gestisce il contesto dell'oggetto
function MyObject(){ }
function MyObject.prototype = {
currentMousePosition: null,
onMouseMove: function(ev){
this.currentMousePosition = this.getCoordinates(ev);
},
getCoordinates: function(ev){
if (ev.pageX || ev.pageY)
return { x: ev.pageX, y: ev.pageY };
return { x: ev.clientX + document.body.scrollLeft - document.body.clientLeft, y: ev.clientY + document.body.scrollTop - document.body.clientTop };
}
};
Il problema che sto cercando di risolvere risolve il contesto dell'oggetto. All'interno della mia funzione onMouseMove assegna la proprietà currentMousePosition. Naturalmente questo non funzionerà perché è una funzione statica che gestisce l'evento mousemove.
Quello che sto cercando è una tecnica/metodo per passare un contesto oggetto con il mio gestore di eventi. L'esempio migliore che posso pensare è la funzione dell'API di Google Maps GEvent.bind() Con esso è possibile passare l'oggetto con la funzione che si desidera attivare sull'evento specificato. Sto essenzialmente cercando la stessa cosa.
Questo è un ottimo inizio, grazie! – Matt