jQuery.sortable.通过JavaScript更改顺序

and*_*lzo 10 html sorting jquery html-lists

如何在JavaScript应用后更改列表的顺序jQuery.sortable.

例如:

<ul id="mylist">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

var x_sortable_list = $("mylist").sortable();
Run Code Online (Sandbox Code Playgroud)

然后,假设这个工作:

x_sortable_list.changeOrder([
 {item:1, newOrder:2 },
 {item:2, newOrder:1 },
 {item:3, newOrder:3 }
]);
Run Code Online (Sandbox Code Playgroud)

Lan*_*ney 16

像其他人提到的那样,这与sortable()功能无关.相反,您需要检索列表中的项目,移动其位置,然后以新的顺序再次清除并重新插入列表项:

// Get your list items
var items = $('#mylist').find('li');

// The new index order for each item
var order = [4, 2, 0, 1, 3];

// Map the existing items to their new positions        
var orderedItems = $.map(order, function(value) {
    return items.get(value);
});

// Clear the old list items and insert the newly ordered ones
$('#mylist').empty().html(orderedItems);
Run Code Online (Sandbox Code Playgroud)


Alc*_*nja 11

正如Sparr所说,没有办法sortable直接使用它们进行排序,但您仍然可以使用以下方法手动移动它们:

$("#mylist li:eq(1)").insertAfter($("#mylist li:eq(2)"));
Run Code Online (Sandbox Code Playgroud)