11 votes

jQuery.sortable. changer l'ordre par JavaScript

Comment modifier l'ordre d'une liste une fois appliqué par JavaScript ? jQuery.sortable .

Par exemple :

<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();

Ensuite, en supposant que cela fonctionne :

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

17voto

Lance McNearney Points 6224

Comme d'autres l'ont mentionné, cela n'a rien à voir avec la fonctionnalité sortable(). Vous devez plutôt récupérer les éléments de la liste, modifier leur position, puis effacer et réinsérer les éléments de la liste dans leur nouvel ordre :

// 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);

11voto

Alconja Points 10626

Comme l'a dit Sparr, il n'y a aucun moyen de les trier en utilisant les données de l'enquête. sortable directement, mais vous pouvez toujours les déplacer manuellement avec quelque chose comme :

$("#mylist li:eq(1)").insertAfter($("#mylist li:eq(2)"));

1voto

Sparr Points 5796

Le triable fournit une interface utilisateur pour réorganiser les éléments. Pour les réorganiser de manière programmatique, vous devez toujours manipuler les éléments vous-même, manuellement ou avec un autre plugin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X