我正在尝试制作一个带有处理mousedown
和mouseup
jQuery 事件的视图的小应用程序。
我有一个getCoords
方法,它返回给定鼠标事件的坐标,我从中调用该方法determineEvent
,并存储mousedown
in的坐标mouseDownCoords
。它还返回mouseDownCoords
变量。这个方法的目的是为了区分点击和拖动事件,但为了简洁我省略了代码)
该方法doStuff
被触发mouseup
并将 mouseup 的坐标存储在mouseUpCoords
. 问题是我不知道如何从这个方法中访问 mouseDownCoords 变量。
我虽然通过代码手动触发事件,但这没有多大意义(从 mousedown 事件处理程序触发 mouseup 事件......)也调用determineEvent
方法 from 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
}
});
任何指针都会有所帮助:)