我尝试将事件处理嵌入到木偶内部,但是当我嵌入事件时,我松开了木偶视图对象,这需要我更新div的宽度以创建交互式滑块,从而使我陷入困境。
SliderBehavior = Marionette.Behavior.extend({
ui: {
slider: '.slider-pointer',
foregroundScale: '.slider-default',
},
events: {
'mousedown @ui.slider': 'onSliderDrag'
},
onSliderDrag: function(e) {
console.log(this);
var handlers = {
mousemove : function(e){
this.ui.foregroundScale.css({
width : utility.round((this.view.options.max - (e.pageX - this.view.options.offset)), this.view.options.min, this.view.options.max)+ 'px'
});
},
mouseup : function(e){
$(e.target).off(handlers);
}
};
this.$el.on(handlers);
}
});
因此问题是insde处理程序>> mousemove >>该对象表示事件,我该如何从该函数内部访问ui哈希。
问候
最佳答案
快速答案使用$ .proxy注入您自己的范围
var handlers = {
mousemove : $.proxy(function(e){
this.ui.foregroundScale.css({
width : utility.round((this.options.max - (e.pageX - this.options.offset)), this.options.min, this.options.max)+ 'px'
});
}, this),
mouseup : $.proxy(function(e){
$(e.target).off(handlers);
}, this)
};
关于javascript - Marionette Embedded Events访问ui哈希,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25796729/