jQueryイベントmousedown
を処理するビューを備えた小さなアプリケーションを作成しようとしています。mouseup
特定のマウス イベントの座標をgetCoords
返すメソッドがあり、そのメソッドを から呼び出しdetermineEvent
、の座標を に保存mousedown
しmouseDownCoords
ます。また、mouseDownCoords
変数を返します。このメソッドの目的は、クリック イベントとドラッグ イベントを区別することですが、簡潔にするためにコードを省略しました)。
メソッドdoStuff
は でトリガーされmouseup
、マウスアップの座標を に保存しmouseUpCoords
ます。問題は、このメソッド内から mouseDownCoords 変数にアクセスする方法がわからないことです。
私はコードを介して手動でイベントをトリガーすることを考えましたが、それはあまり意味がありません (mousedown イベントハンドラーから mouseup イベントをトリガーする...) また、determineEvent
からメソッドを呼び出すdoStuff
ことは意味がありません。それへのイベント(マウスアップ)
これが私のビューコードです
var ScreenView = Backbone.View.extend({
tagName: 'div',
className:"screen",
events: {
"mousedown": "determineScreenEvent",
"mouseup": "doStuff"
},
getCoords: function(e) {
var screenOffset = this.$el.offset();
var coords = [e.pageX - screenOffset.left, e.pageY - screenOffset.top];
return coords;
},
determineEvent: function(e) {
mouseDownCoords = this.getCoords(e);
return mouseDownCoords;
//code for distinguishing between click/drag
},
doStuff: function(e, mouseDownCoords) {
mouseUpCoords = this.getCoords(e);
//do stuff with mouseUpCoords and mouseDownCoords
}
});
どんなポインタも役に立ちます:)