ReSort Appended html-items
Hi,
I like to resort appended items via Arrays. If I append only two items it works fine. I have Problems to swap two items, if append 3 or more.
Any ideas how I can solve this problem? Maybe there is a much easier way.
Here is the code:
var rownumber = 0;
var fieldorder = [];
var neworders = [];
var key = 0;
$("button").click(function() {
rownumber++;
ButtonId = this.id;
fieldorder[key] = rownumber;
key++;
$("<div class=\"MyWordsFieldSpacer\"></div><div class=\"fieldset\" id=\"field_" + rownumber + "\">" + fieldsource[ButtonId] + "</div><div class=\"UPorderButtons\" id=\"" + rownumber + "_button_down\">nach unten</div><div class=\"DOWNorderButtons\" id=\"" + rownumber + "_button_up\">nach oben</div><div class=\"MyWordsFieldSpacer\"></div>").appendTo("#FormFields").click(function(n){
var idVal = $(this).attr ("id");
var length = fieldorder.length
if(length > 2) {
var checkDOWNButton = "";
var checkUPButton = "";
for(i=0; i<length; i++) {
checkDOWNButton = fieldorder[i] + "_button_down";
checkUPButton = fieldorder[i] + "_button_up";
if(checkUPButton == idVal && i > 0 && i < length) {
var tmp = fieldorder[i];
neworders[i] = fieldorder[i+1];
neworders[i+1] = tmp;
} else if (checkDOWNButton == idVal && i > 0 && i <= length) {
var tmp = fieldorder[i];
neworders[i] = fieldorder[i-1];
neworders[i-1] = tmp;
} else {
neworders[i] = fieldorder[i];
}
}
} else {
var tmp = fieldorder[0];
neworders[0] = fieldorder[1];
neworders[1] = tmp;
}
sortFields(neworders);
$.each(neworders,function(index,value){
fieldorder[index] = value;
});
});
});