0
我正在嘗試在我的webapp中使用backbone.js。我有一個視圖,它使用JQuery可拖動插件來製作div可拖動:backbone.js + jQuery:'this'引用無法在JQuery-Event-Handler中訪問
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事件處理程序中訪問我的視圖?
另一種方法是綁定的功能視圖:'阻力:_.bind(這一點,函數(){警報(this.model)})' – Julien 2011-04-13 13:32:14
這是一個更好的做法,在我的觀點因爲它顯式地綁定了該函數。使用'that'引用對我來說總是看起來像一個黑客。 – poezn 2011-07-28 19:39:03
你應該使用這個。$ el而不是$(this.el)來獲得更好的性能。 ;) – taseenb 2013-06-20 13:26:57