J’ai le code suivant qui fonctionne bien qu’il fonctionne assez lentement je sens. Ce que je veux faire est de permettre aux
existants ou de les déplacer d’un niveau supérieur. Je veux aussi pouvoir créer des hiérarchies, donc si vous faites glisser un
sous un autre
cela créerait une hiérarchie. Je pense que dans ce sens, je devrais rendre un
sous chaque
au cas où. Je veux seulement le limiter à 2 ou 3 niveaux de profondeur. $("#sort_list").sortable({ containment: 'parent', axis: 'y', revert: true, opacity: 0.8 }); $(".sub_list").sortable({ containment: 'parent', axis: 'y', revert: true, opacity: 0.8, }); $("#sort_list").disableSelection(); - one
- two
- sub one
- sub two
- three
- four
Excellente réponse à cette question
https://github.com/ilikenwf/nestedSortable
Je suis content de l’avoir trouvé. jstree était trop lourd pour moi.
Un plugin jquery “nestable”. Parfait pour ce que j’essaie de faire:
J’ai utilisé le plugin JQuery Interface qui était facile à installer et fonctionnait assez bien pour cette tâche (consultez la démo ), mais je voulais quelque chose de plus léger et qui ne nécessite pas de plugins supplémentaires.
Même le sortingable de la bibliothèque de l’interface utilisateur JQuery est assez rudimentaire, mais vous pouvez quand même atteindre cette fonctionnalité:
$("ul").sortable({ items: '> li', axis: 'y', update: function (e, ui) { ... }
Cela vous permettra de sortinger “li” sous n’importe quel “ul” (si je me souviens bien). Cependant, il ne vous laissera pas déplacer des éléments “li” d’un “ul” à un autre “ul”. Même s’il est possible de le faire (modification de la configuration), je l’ai trouvé moins stable et plutôt encombrant.
Je suis venu avec une solution simple: un “drapeau”, qui désactive le sorting et active le déplacement … et ça marche à merveille! Tout ce que vous avez à faire est de garder la trace du parent “li” avant et après son déplacement.
Mes 5 centimes
Très probablement, les fonctionnalités de sorting de la bibliothèque jQuery UI ne sont pas configurables (elles sont très rudimentaires et permettent de sortinger des listes d’un niveau). Vous feriez mieux d’utiliser simplement l’un des plug-ins d’arborescence prenant en charge le glisser-déposer.
Le widget de l’arborescence de l’interface utilisateur de jQuery est en cours de développement , mais vous pouvez utiliser l’un des plugins suivants:
http://abeautifulsite.net/notebook/58
http://news.kg/wp-content/uploads/tree/
http://bassistance.de/jquery-plugins/jquery-plugin-treeview/