jQuery 函数未在 Backbone 视图渲染上触发
jQuery function is not firing on Backbone View Render
我有一个 Backbone ItemView,它有一些 DIV 及其 class 和一个 DIV 有 class active
.
我写了一个 jQuery 行来隐藏所有没有 class active
的元素,但它不起作用。
Show.EventItemView = Marionette.ItemView.extend({
template: '#id-template',
events: {
'click #js-tabs li.js-tab': 'tabs'
},
tabs: function(e) {
var target = e.target,
tab_id = $(e.currentTarget).attr('js-data-tab-id');
$('#js-tabs .js-tab-content').hide();
$('#js-tabs .js-tab-content#' + tab_id).show();
},
initialize: function() {
$('#js-tabs .js-tab-content:not(.active)').hide();
console.log('Initialized');
}
});
"Initialized" 文本显示在控制台上,但没有隐藏 class active
的元素。
如果 运行 这行 $('#js-tabs .js-tab-content:not(.active)').hide();
直接在 Chrome 控制台中,正在运行但应该在视图渲染(或其他方法)时自动触发。
感谢您的预付款。
在Backbone视图中,initialize是渲染视图时执行的第一个方法。所以在这里你甚至在渲染视图之前就试图操作。
尝试将该代码移动到渲染函数中或在加载视图 (page/content) 之后。
同时尝试在控制台中使用断点进行调试,以确保在执行该行代码之前是否加载了内容。
initialize()
在实例化视图时调用 render()
方法之前。这意味着视图还没有被渲染。 Marionette.ItemView
为您提供了一些有用的回调方法。
onRender()
在每次渲染时被调用。如果您将模型同步到服务器,当模型内容更新时,这可能会被调用多次。
onShow()
在区域中显示的每个视图被调用一次。如果你使用 regions 然后使用这个。
我有一个 Backbone ItemView,它有一些 DIV 及其 class 和一个 DIV 有 class active
.
我写了一个 jQuery 行来隐藏所有没有 class active
的元素,但它不起作用。
Show.EventItemView = Marionette.ItemView.extend({
template: '#id-template',
events: {
'click #js-tabs li.js-tab': 'tabs'
},
tabs: function(e) {
var target = e.target,
tab_id = $(e.currentTarget).attr('js-data-tab-id');
$('#js-tabs .js-tab-content').hide();
$('#js-tabs .js-tab-content#' + tab_id).show();
},
initialize: function() {
$('#js-tabs .js-tab-content:not(.active)').hide();
console.log('Initialized');
}
});
"Initialized" 文本显示在控制台上,但没有隐藏 class active
的元素。
如果 运行 这行 $('#js-tabs .js-tab-content:not(.active)').hide();
直接在 Chrome 控制台中,正在运行但应该在视图渲染(或其他方法)时自动触发。
感谢您的预付款。
在Backbone视图中,initialize是渲染视图时执行的第一个方法。所以在这里你甚至在渲染视图之前就试图操作。
尝试将该代码移动到渲染函数中或在加载视图 (page/content) 之后。
同时尝试在控制台中使用断点进行调试,以确保在执行该行代码之前是否加载了内容。
initialize()
在实例化视图时调用 render()
方法之前。这意味着视图还没有被渲染。 Marionette.ItemView
为您提供了一些有用的回调方法。
onRender()
在每次渲染时被调用。如果您将模型同步到服务器,当模型内容更新时,这可能会被调用多次。
onShow()
在区域中显示的每个视图被调用一次。如果你使用 regions 然后使用这个。