backbone.js + JQuery:在JQuery-Event-Handler中无法访问'this'引用

时间:2011-04-12 19:22:42

标签: javascript jquery backbone.js

我正在尝试在我的webapp中使用backbone.js。我有一个View,它使用JQuery draggable插件来创建一个div draggable:

var ExampleView = Backbone.View.extend({
  events: {
    //...
  },

  initialize: function() {
    _.bindAll(this, "render");

    this.model.bind('change', this.render);
  },

  render: function() {
      // icanhaz
      this.el = ich.kinectdevtmpl();

      $(this.el).draggable({
         drag: function() { 
                alert(this.model);

         }
      });           

    return this;
  }      

});

但是在拖动事件处理程序中,我无法访问'this.model',因为'this'不再引用该视图。那么,我如何在JQuery事件处理程序中访问我的View?

1 个答案:

答案 0 :(得分:3)

这已经改变了,不再是你想要的了。 您可以将其分配给变量并使用它。

var that = this;
$(this.el).draggable({
   drag: function() { 
          alert(that.model);

   }
});