我有两个视图 - 一个OverlayView和一个StoryView。 StoryView需要附加到OverlayView(都是动态创建的)。我在OverlayView中动态创建#overlay div,但是当我将StoryView的'el'设置为#overlay时,StoryView的这个$ el是一个空数组。在StoryView创建时,#overlay div绝对存在于DOM中。如何使用动态创建的'el'创建Backbone视图?
我该如何让StoryView识别yyanly创建的#overlay作为它的'el'?我是否认为'el'应该是视图添加到的'父'容器? OverlayView的'el'实际上应该是'#overlay'吗?
OverlayView的:
OverlayView = Backbone.View.extend({
el: $('body'),
events: {
'click #film': 'hideOverlay'
},
initialize: function() {
this.render();
},
render: function() {
this.$el.append('<div id="overlay"></div>');
return this;
}
});
StoryView:
var StoryView = Backbone.View.extend({
el: $('#overlay'),
events: {
'click .close': 'closeStory'
},
initialize: function() {
this.render();
},
render: function() {
console.log(this.$el); // Returns empty array []
return this;
}
});
你说得对,我不必要地把它包装在一个jQuery对象中。谢谢! – 2012-04-18 19:13:33