我有一个看起来像这样的视图模型:
self.selectedItems = ko.observableArray();
self.onBeforeUnselectItem = function (elem) {
if (elem.nodeType === 1)
$(elem).fadeOut(function() {
$(elem).remove();
});
};
self.unselectItem = function (item) {
self.selectedItems.remove(item);
self.unSelectedItems.push(item);
};
我的观点是这样的:
<div data-bind="foreach: {data: selectedItems, beforeRemove: onBeforeUnselectItem}">
<span data-bind="text: Name"></span> - <a href="#" data-bind="">Remove</a>
</div>
unSelectedItems
我的问题是该项目在淡出动画完成之前被推入。
有没有办法让调用unselectItem
等到动画完成?
我意识到这是因为点击事件绑定到的方式unselectItem
编辑
暂时,我在我的unselectItem
函数中放了一个延迟:(
这显然不理想!)
self.unselectItem = function (item) {
self.selectedItems.remove(item);
setTimeout(function () {
self.unSelectedItems.push(item);
}, 350);
};