JSFiddle - React, Tailwind, and code Playground
HTML
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/themes/base/jquery-ui.css">
<div id="tree">
</div>
CSS
ul#createTree {
margin:0px;
padding:0px;
}
ul#createTree li ul {
margin:0px 0px 0px 20px;
padding:0px;
}
.drop-active {
background: #ffff99;
}
.droparea {
background:#ccc;
height:70px;
}
JavaScript
var jsonObj = {
"department": {
"Title1": [
{
"child1": "Green",
"child2": "Yellow"},
{
"child3": "Black",
"child4": "White"}
],
"Title2": [
{
"child5": "Violet",
"child6": "purple"},
{
"child7": "Pink",
"child8": "Orange"}
]
}
}
$(document).ready(function() {
var treeList = "";
var listTree = 0;
var innerTree = 0;
treeList = "<ul id=\"createTree\" class=\"droptrue\">";
for (var key in jsonObj) {
//alert("key: " + key + ", value: " + jsonObj[key])
for (var skey in jsonObj[key]) {
treeList += ("<li class=\"listTree\" id=\"asdf\">" + skey + "<ul id=\""+skey+"\">");
for (var sskey in jsonObj[key][skey]) {
for (var ssskey in jsonObj[key][skey][sskey]) {
treeList += ("<li class=\"innerList\">" + jsonObj[key][skey][sskey][ssskey] + "</li>");
}
}
treeList += "</ul></li>";
}
}
treeList += "</ul>";
$('#tree').append(treeList);
$(".listTree ul").sortable({
revert: true
});
$("#Title1 li").draggable({
helper: "clone",
cursor: 'hand',
revert: 'invalid',
connectToSortable: "#Title2",
});
$("#Title2 li").draggable({
helper: "clone",
cursor: 'hand',
revert: 'invalid',
connectToSortable: "#Title1",
});
$( "ul, li" ).disableSelection();
});