骨干.js + JQuery:“这个” JQuery-Event-Handler 中无法访问引用

发布于 2024-11-01 04:49:27 字数 602 浏览 0 评论 0原文

我正在尝试在我的网络应用程序中使用backbone.js。我有一个视图,它使用 JQuery 可拖动插件来使 div 可拖动:

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 事件处理程序中访问我的视图呢?

I'm trying to use backbone.js in my webapp. I have a View which uses the JQuery draggable plugin to make a 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;
  }      

});

But in the drag event handler I can't access 'this.model' because 'this' do not refer to the view anymore. So, how can I access my View in the JQuery event handler?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

允世 2024-11-08 04:49:27

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

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

   }
});

this has changed and is no longer what you want.
you can assign this to a variable and use that instead.

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

   }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文