我想创建两个(或多个)视图的情况下,每一个不同的EL属性,必须通过Backbone.js的视图的事件散列(而不是通过jQuery的)绑定到这些事件。
获取事件触发时,所有实例具有相同的el
很简单:
someView = Backbone.View.extend({
el: '#someDiv',
events: {
'click': 'someFunction'
},
someFunction: function(){
//Do something here
}
});
到目前为止,如果我给你el
的initialize
功能,并设置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
}
});
然而,这会触发someFunction
x次,如果我有X实例someView
。
接下来,我试图同时设置el
和events
的属性initialize
:
someView = Backbone.View.extend({
initialize: function( options ){
this.el = options.el
this.events = {
'click': 'someFunction'
}
},
someFunction: function(){
//Do something here
}
});
但是这不会触发事件。 在这一点上,我非常钓鱼。
有谁知道如何实例化一个Backbone.js的与查看el
特定于该实例具有事件只会触发该实例,而不是其他情况下View
?