问题:
我有一个名为dashboard的容器,可以将不同的子视图加载到其中。所有子视图都有一个标题为sub-header
的标题元素。我想要做的是从父仪表板JavaScript更新与该元素关联的类,但由于未加载子标题但我很难时间访问它。
建议我考虑使用_.defer函数。下面是我与仪表板关联的代码示例。有没有办法让我检查子标题元素是否已加载到DOm中了?
示例:
onRender: function () {
var self = this;
this.resizeMenu(this.model);
this.listenTo(this.model, 'change:menuState', function () {
self.resizeMenu(self.model);
});
_.defer(function(){
console.log("Dashboard On Show Function");
if ($('#dashboardBody').hasClass('minimized')) {
$("#sub-header").removeClass("mobile-subheader");
$("#sub-header").removeClass("full-subheader");
$("#sub-header").addClass("minimized-subheader");
console.log("DashboardBody Minimized");
} else if ($('#dashboardBody').hasClass('mobile')) {
$("#sub-header").removeClass("full-subheader");
$("#sub-header").removeClass("minimized-subheader");
$("#sub-header").addClass("mobile-subheader");
console.log("DashboardBody Mobile");
} else if ($('#dashboardBody').hasClass('expanded')) {
$("#sub-header").removeClass("mobile-subheader");
$("#sub-header").removeClass("minimized-subheader");
$("#sub-header").addClass("full-subheader");
console.log("DashboardBody Expanded");
}
})
},
结果: 我看到我正在进入defer函数和if语句的控制台日志,但是没有使用新类更新带有id子标题的标头。
我是否应该将onRender函数之外的延迟语句移动到onShow中?