JSFiddle - React, Tailwind, and code Playground
HTML
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css">
<div class="main" id="main">
<div class="containers" id='parentID_0'></div>
</div>
CSS
* { font-family: sans-serif; font-size: 12px; }
.popup, .frame{
border: 1px solid #888;
margin: 10px;
border-radius: 5px;
box-shadow: 1px 2px 4px #aaa;
background:#eee;
}
.containers {
clear: both;
width:500px;
}
.containers .popup,.containers .frame{
min-height: 20px;
cursor:move;
}
.containers .popup .header, .containers .frame .header{
padding:5px;
}
.containers .popup .content,.containers .frame .content{
min-height: 40px;
height:auto;
width: 100%;
border-top: 1px solid rgb(136, 136, 136);
background: rgb(255, 255, 255) none repeat scroll 0% 0%;
border-bottom-right-radius: 5px;
border-bottom-left-radius: 5px;
}
.containers .ph {
margin: 10px;
border: 1px solid #0f0;
border-radius: 5px;
width:100%;
}
.ui-state-hover{
background: red;
}
JavaScript
'use strict'
$(document).ready(function(){
var resp =[{"id":"1","name":"User","title":"1","parentID":"9","base":"1"},
{"id":"2","name":"User","title":"2","parentID":"1","base":"0"},
{"id":"3","name":" User","title":"3","parentID":"1","base":"0"},
{"id":"4","name":"User","title":"4","parentID":"1","base":"0"}];
createList(resp);
setDragDrop();
function createList(data){
jQuery.each(data, function() {
var baseUsed =false;
if(this.base == 1 && baseUsed ==false){
$('.containers').append("<div class='popup' id='parentID_"+this.id+"'><div class='header'>"+this.name+" ("+this.title+")</div><div class='content'></div></div>");
baseUsed = true;//to stop replication
}else{
$('#parentID_'+this.parentID).append("<div id='parentID_"+this.id+"' class='popup'><div class='header'>"+this.name+" ("+this.title+")</div><div class='content'></div></div>");
}
});
}
function setDragDrop(){
$('.containers .popup').droppable({
activeClass: "ui-state-default",
hoverClass: "ui-state-hover",
// accept: '.object',
out: function() {
$( this ).droppable( "option", "disabled", false );
},
drop: function(event, ui) {
var targetId = this.id;
var userId = (ui.draggable).get(0).id;
$(ui.draggable).addClass("insidePopup");
ui.draggable.detach().appendTo($(this));
}
});
$('.popup').draggable({
helper: 'clone',
containment:"parent"
});
}
});