将返回值作为主干视图方法之间的参数传递
Pass return values as arguments between Backbone View methods
我正在尝试创建一个带有处理mousedown
和mouseup
jQuery事件的视图的小应用程序。
我有一个返回给定鼠标事件的坐标的getCoords
方法我从determineEvent
调用该方法,并将mousedown
的坐标存储在mouseDownCoords
中。它还返回 mouseDownCoords
变量。此方法的目的是区分单击和拖动事件,但为了简洁起见,我省略了代码)
方法doStuff
在mouseup
触发,并将鼠标向上的坐标存储在mouseUpCoords
中。问题是我不知道如何从此方法中访问 mouseDownCoords 变量。
我虽然通过代码手动触发事件,但这没有多大意义(从鼠标按下事件处理程序触发鼠标打开事件......也从doStuff
调用 determineEvent
方法,没有意义,因为我正在向它传递一个不同的事件(鼠标向上)
这是我的视图代码
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
}
});
任何指针都会有所帮助:)
如果需要快速解决方案,请将其存储在视图中:
determineEvent: function(e) {
this.mouseDownCoords = this.getCoords(e);
return this.mouseDownCoords;
//code for distinguishing between click/drag
},
doStuff: function(e, mouseDownCoords) {
var mouseUpCoords = this.getCoords(e);
//use this.mouseDownCoords
//do stuff with mouseUpCoords and mouseDownCoords
}
W.r.t Backbone,您应该将一个模型附加到视图,该模型将包含渲染视图所需的必要数据。
我建议您添加一个模型来查看,并将这些mouseDownCoords
和mouseUpCoords
设置为该模型的一部分,该模型在任何给定时间都可以在视图中访问。
如果您不想严格遵循 Backbone 方式,那么只需将坐标存储为视图中的变量,但不建议这样做
相关文章:
- XMLHttpRequest对象的open()和send()方法之间有什么区别
- MongoDB原生:toString和toHexString方法之间有什么区别吗?
- JavaScript:Date 的 toString() 和 toLocaleString() 方法之间的区别
- 在Ember.js中的方法之间共享变量上下文
- 在要设置动画的所有方法之间进行选择
- 声明Javascript名称空间的两种方法之间的区别
- JQuery:什么'这两个$.get()方法之间的区别是什么
- 什么'这两种对象构造方法之间的区别是什么
- 使用:nth-child()选择器和.get()方法之间的性能差异
- 将返回值作为主干视图方法之间的参数传递
- 直接调用方法和使用“.call”方法之间的区别?WSS
- JS中各种对象值收集方法之间的差异
- Google Maps/Google Places:getPlace 和 getDetails 方法之间有区别吗?
- 在构造函数内部和外部定义公共方法之间有什么区别吗?
- Javascript在调用者“方法”之间更改变量
- 引导方法和运行方法之间的角度有什么区别
- 如何在 react 中的方法之间进行通信
- 这些ES6导入方法之间的区别是什么
- 使用回调和调用方法之间的区别
- 两种提交表格方法之间的差异