私は、OverlayViewとStoryViewの2つのビューを持っています。 StoryViewをオーバーレイビューに追加する必要があります(両方とも動的に作成されます)。 OverlayViewで#overlay divを動的に作成しますが、StoryViewの 'el'を#overlayに設定すると、StoryViewの$ elは空の配列になります。 #overlay divは、StoryViewが作成されるまでにDOMに確実に存在します。動的に作成された 'el'でバックボーンビューを作成するにはどうすればよいですか?
ダイナミックに作成された#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オブジェクトにラップしていました。ありがとう! –