Initializing 'jQuery UI Sortable List' in pre-defined order
I don't think the sortable plugin comes with an option to set the initial order of the elements. I think it expects the elements to be initially rendered in the correct order (which makes sense in my opinion - why don't you do that ?)
Anyway, here's a piece of code that will sort the elements prior to initializing the sortable plugin:
var arrValuesForOrder = ["3", "1", "4", "2"];
var $ul = $("#myUnorderedList"),
$items = $("#myUnorderedList").children();
// loop backwards so you can just prepend elements in the list
// instead of trying to place them at a specific position
for (var i = arrValuesForOrder[arrValuesForOrder.length - 1]; i >= 0; i--) {
// index is zero-based to you have to remove one from the values in your array
$ul.prepend( $items.get(arrValuesForOrder[i] - 1));
}
$("#myUnorderedList").sortable({
axis: 'y',
handle: '.handle',
update: function() {
var order = $('#myUnorderedList').sortable('serialize');
alert(order);
}
});
DEMO