【发布时间】:2012-05-02 17:44:06
【问题描述】:
我有一个按钮,可以将一个项目在 observableArray 中向左移动一个位置。我正在按照以下方式进行操作。但是,缺点是 categories()[index] 会从数组中删除,因此会丢弃该节点上的任何 DOM 操作(在我的情况下通过 jQuery 验证)。
有没有办法在不使用临时变量的情况下交换两个项目以保留 DOM 节点?
moveUp: function (category) {
var categories = viewModel.categories;
var length = categories().length;
var index = categories.indexOf(category);
var insertIndex = (index + length - 1) % length;
categories.splice(index, 1);
categories.splice(insertIndex, 0, category);
$categories.trigger("create");
}
【问题讨论】:
标签: knockout.js