knockout-sortable - simple list
https://github.com/rniemeyer/knockout-sortable
by Francesco Frustaci
HTML
<script src="http://knockoutjs.com/downloads/knockout-2.2.1.debug.js"></script>
<script src="https://rawgithub.com/rniemeyer/knockout-sortable/master/build/knockout-sortable.js"></script>
<script id="nodeTmpl" type="text/html">
<li>
<a href="#" data-bind="text: name"></a>
<div>
<ul data-bind="sortable: { template: 'nodeTmpl', data: $data.children }"></ul>
</div>
</li>
</script>
<ul data-bind="sortable: { template: 'nodeTmpl', data: root }"></ul>
CSS
ul { min-height: 50px; }
li { padding: 20px; margin: 5px; border: solid 1px black; }
JavaScript
var TreeItem = function(name, children) {
this.name = ko.observable(name);
this.children = children && ko.observableArray(children);
};
ko.applyBindings({
root: [
new TreeItem("A", []),
new TreeItem("B", [])
]
});