我尝试将事件处理嵌入到木偶内部,但是当我嵌入事件时,我松开了木偶视图对象,这需要我更新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/

10-09 16:52