David Sulc 的回答很老套,fadeIn 应该在它自己的项目中定义,而不是在父视图中。另一件事是文档中没有提到 onBeforeItemAdded(),因此它可能是供内部使用的,并且可能会随着时间而改变。
我建议在父视图中添加以下内容,注意标记 parentRendered:
itemViewOptions: function() {
return {
collection: this.collection,
parentRendered: this.rendered
};
},
onRender: function() {
this.rendered = true;
}
并在项目视图内的 onShow 函数中使用该标志:
onShow: function() {
// show visual effect on newly added items
if (this.options.parentRendered) {
this.$el.css('opacity', 0).slideDown(200).animate(
{ opacity: 1 },
{ queue: false, duration: 400 }
);
}
else {
this.$el.show();
}
}