好了,我有一个导航和仪表板的概念。 在当我点击导航链接我的路由器,我打电话给我的仪表板视图设置活动选项卡。
例如:
不
<a href="#" class="dashabord_tab" id="widgets">Widgets</a>
<a href="#" class="dashabord_tab" id="Foobars">Foobars</a>
dashboard_container.jst.tpl
<div id="nav"></div>
<div id="current_tab"></div>
DASHABORDVIEW
DashboardView = Backbone.View.extend({
template:JST.dashboard_container,
render: function(){
$(this.el).html(this.template());
},
activateWidgets: function(){
if(!(this.widgets_view)){
this.widgets_view = new WidgetsView();
this.widgets_view.render();
}
$(this.el).find("#current_tab").html(this.widgets_view.el);
},
activateFoobars: function(){
if(!(this.foobars_view)){
this.foobars_view = new FooBarsView();
this.foobars_view.render();
}
$(this.el).find("#current_tab").html(this.foobars_view.el);
}
});
问题:
所以我第一次切换到任何widgets_tab或foobar_tab标签加载预期。 但是如果我切换到一个标签,切换出来,然后再切换回它,在我看来,所有的事件都不再绑定。 点击,hoevering,没有内部foobars_view意见例如是可点击,hoverable等
在过去,我一直在为孩子的意见,像这样每一个的包装:
过去的解决方案,皮塔:
activateFoobars: function(){
$('.tab_wrapper').hide();
if($(this.el).find("#foobars_wrapper").length < 1){
$(this.el).append("<div class='tab_wrapper' id='foobars_wrapper'></div>");
this.foobars_view = new FooBarsView();
$(this.el).find("#foobars_wrapper").html(this.foobars_view.render().el);
}
$('#foobars_wrapper').show();
}
我宁愿不这样做的方式,我只是上面显示,我真的很喜欢的只是把视图的EL在active_tab DIV的想法,始终保持开放......如果我不能做到这一点,我想对,就是那里的路上我只是上面显示的方法吗? 谢谢!