在我的backbone.js 应用程序中,我试图在添加视图元素后淡入它。但是它不起作用。
现场示例:http: //metropolis.pagodabox.com
var itemRender = view.render().el;
$('#items-list').append(itemRender);
$(itemRender).addClass('show');
但是,如果我添加一个小的 setTimeout 函数,它就可以工作。
var itemRender = view.render().el;
$('#items-list').append(itemRender);
setTimeout(function(){
$(itemRender).addClass('show');
},10);
使用 fadeIn() 也可以,但我更喜欢直接使用 CSS 进行转换,因为它更有效,并且不喜欢使用任何 setTimeout “hacks”来强制它工作。有没有可以用于追加的回调?或者有什么建议?完整代码如下:
itemRender: function (item) {
var view = new app.ItemView({ model: item }),
itemName = item.get('name'),
itemRender = view.render().el;
$('#items-list').append(itemRender);
$(itemRender).addClass('show');
app.itemExists(itemName);
}
CSS/少:
#items-list li {
padding: 0 10px;
margin: 0 10px 10px;
border: 1px solid @black;
.border-radius(10px);
position: relative;
.opacity(0);
.transition(opacity)
}
#items-list li.show {.opacity(1)}