Javascriptのイベントハンドラーで次の問題が発生します。mousemove
次のようなイベントハンドラーを持つオブジェクトがあります。
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 };
}
};
私が解決しようとしている問題は、オブジェクトコンテキストを中心に解決されます。私のonMouseMove
関数内で、プロパティを割り当てcurrentMousePosition
ます。mousemove
これはイベントを処理する静的関数であるため、当然これは機能しません。
私が探しているのは、イベントハンドラーでオブジェクトコンテキストを渡すためのテクニック/メソッドです。私が考えることができる最も良い例は、GoogleMapsAPI関数GEvent.bind()
です。これを使用すると、指定したイベントで起動する関数を使用してオブジェクトを渡すことができます。私は本質的に同じものを探しています。