我想創建兩個(或多個)視圖的情況下,每一個不同的EL屬性,必須通過Backbone.js的視圖的事件散列(而不是通過jQuery的)綁定到這些事件。適當的方式查看El
獲取事件觸發時,所有實例具有相同的el
很簡單:
someView = Backbone.View.extend({
el: '#someDiv',
events: {
'click': 'someFunction'
},
someFunction: function(){
//Do something here
}
});
到目前爲止,如果我在initialize
功能分配el
,並設置events
通常如下,事件不會觸發:
someView = Backbone.View.extend({
events: {
'click': 'someFunction'
},
initialize: function(options){
this.el = options.el
},
someFunction: function(){
//Do something here
}
});
我的第一反應是有el
是返回感興趣的DOM元素的字符串表示的函數:
someView = Backbone.View.extend({
el: function(){
return '#someDiv-' + this.someNumber
},
events: {
'click': 'someFunction'
},
initialize: function(options){
this.someNumber = options.someNumber
},
someFunction: function(){
//Do something here
}
});
但是,如果我有 x實例化,則觸發someFunction
x次。
接下來我試着在initialize
同時設置el
和events
屬性:
someView = Backbone.View.extend({
initialize: function(options){
this.el = options.el
this.events = {
'click': 'someFunction'
}
},
someFunction: function(){
//Do something here
}
});
但是這不會觸發事件。在這一點上,我非常喜歡釣魚。
有沒有人知道如何instantiate backbone.js視圖與el
特定於該實例的事件只觸發該實例,而不是其他實例View
?
謝謝你,愛德華。 – kikuchiyo
@EdwardMSmith請更新小提琴,他們不工作... –
更新了兩個jsfiddles從CDNjs而不是從github獲取下劃線和骨幹。 假設這是您所看到的問題。 –