我有一个项目列表,其中包含文本输入以及其他内容,此列表可由jQuery-ui排序。
文本输入的工作是为项目提供更多选项,
所以我创建了一个包含所有选项的数组,它是这样的:
var options = new Array();
$('.optionInput').keypress(function(event){
-- some code for enter press --
var index = $('.inputs .inputOption').index(event.target);
if(typeof options[index] === 'undefined') options[index] = new Array();
options[index][options[index].length] = $(event.target).val();
});
其他代码会将其与项目一起显示。
所以我的问题是数组按位置链接到项目,数组索引是位置。
我尝试使用可排序事件'开始'和'更新',我得到了开始和新位置的位置,但我被困在如何从那里继续......
重新安排阵列的最佳方法是什么?
答案 0 :(得分:0)
我来到了那里!它有效,但在我看来必须有一个更好的方法
也许有人有更好的主意?
inputBox.sortable({
handle: '.sortHeader',
start: function(event, ui){
sortPositionOld = $('.inputs').index(ui.item);
},
update: function(event, ui){
var sortArr = new Array();
var sortPositionNew = $('.inputs').index(ui.item);
var temp;
for(var index in options){
if(index == sortPositionNew) temp = sortPositionOld;
else if(index < sortPositionNew && sortPositionOld < sortPositionNew && index >= sortPositionOld) temp = parseInt(index)+1;
else if(index > sortPositionNew && sortPositionOld > sortPositionNew && index <= sortPositionOld) temp = parseInt(index)-1;
else temp = index;
sortArr[index] = options[temp];
}
options = sortArr;
}
});