【发布时间】:2014-02-10 20:15:27
【问题描述】:
在prior post 之后,了解如何更新数组的顺序。我遵循了 Michael Best 的建议,并使用 splice() 在按钮单击时修改了我的数组的顺序
self.moveup = function (itemIndex) {
var i = self.itemList.indexOf(itemIndex);
if(i >= 1){
var array = self.itemList();
self.itemList.splice(i-1, 2, array[i], array[i-1]);
}
我遇到麻烦的地方是增加数组中的项目。 From reading the usage of Array Splice 第一个参数表示向上移动应该发生的变化我认为那将是 i+1 ,值 2 表示数组中有多少项会发生变化,所以那里没有变化,然后我认为的范围是选定的项目数组 [i] 和结束将是 [i+1],因为我正在增加位置。
self.itemList.splice(i+1, 2, array[i], array[i+1]);
在附加的提琴手中,您可以看到值增加,但项目实际上并没有改变顺序,它们仅在您按下向下按钮时才会复制。我希望结果与调用 moveUp 时的结果相同。
我很感激任何关于我在这里缺少的东西的指示。 http://jsfiddle.net/rlcrews/SCWmk/5/
-干杯
【问题讨论】: