10

JavaScriptで適用されたリストの順序を変更するにはどうすればよいですかjQuery.sortable

例えば:

<ul id="mylist">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
</ul>

var x_sortable_list = $("mylist").sortable();

次に、これが機能すると仮定します。

x_sortable_list.changeOrder([
 {item:1, newOrder:2 },
 {item:2, newOrder:1 },
 {item:3, newOrder:3 }
]);
4

3 に答える 3

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);
于 2010-01-14T22:01:16.030 に答える
11

Sparrが言ったように、sortable直接使用してそれらをソートする方法はありませんが、次のようなものを使用して手動で移動することはできます。

$("#mylist li:eq(1)").insertAfter($("#mylist li:eq(2)"));
于 2010-01-14T21:30:34.827 に答える
1

ソート可能オブジェクトは、アイテムを再配置するためのユーザーインターフェイスを提供します。プログラムで要素を再配置するには、手動または他のプラグインを使用して要素を自分で操作する必要があります。

于 2010-01-14T21:21:45.287 に答える