observableArray 内で項目を 1 つ左に移動するボタンがあります。私は次の方法でそれをやっています。ただし、欠点は、categories()[index] が配列から削除されるため、そのノードでの DOM 操作 (私の場合は jQuery 検証による) が破棄されることです。
DOM ノードを保持するために、一時変数を使用せずに 2 つのアイテムを交換する方法はありますか?
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");
}