JSFiddle - React, Tailwind, and code Playground

by Cerlin ST

HTML

<div class="dragImg"><img src="http://placehold.it/40x40"/>
             </div>


<div class="outer">Outer
    <div id="inner" align="center" > Inner</div>
             
             </div>

CSS

.outer {
    width: 400px;
    height: 300px;
    border: 1px solid black;
}
#inner {
     width: 100px;
    height: 100px;
    border: 1px solid black;
    margin: 150px auto; 
}

.ui-state-hover {
    background-color: 5px solid orange;   
}
#dropHere {
    width:400px;
    height: 400px;
    border: dotted 1px black;
    
}

JavaScript

jQuery(function() {
    jQuery(".dragImg").draggable({                                    
   //use a helper-clone that is append to 'body' so is not 'contained' by a pane
       helper: function() {
            return jQuery(this).clone().appendTo('body').css({
                'zIndex': 5
                })
            },
           
           revert: true
	       
    });
    jQuery('.outer').droppable({
       
        accept: '.dragImg',
	    hoverClass: "ui-state-hover", 
        activeClass: 'ui-state-hover',
        
        drop: function(event, ui) {
            alert("Dropped in outer Div");
            if (!ui.draggable.hasClass("dropped")){                                       
                 jQuery(this).append(
                     jQuery(ui.draggable).clone()
                     .addClass("dropped")
                     .draggable()); 
                   }
             } 
      });

    jQuery('#inner').droppable({
       greedy: true,
        accept: '.dragImg',
         activeClass: 'ui-state-hover',
         hoverClass: "ui-state-hover",
        drop: function(event, ui) {
            alert("Inner Dropped");
            if (!ui.draggable.hasClass("dropped")){                                       
                 jQuery(this).append(
                     jQuery(ui.draggable).clone()
                     .addClass("dropped").draggable()); 
                   }
             } 
            
        });
   
    
    
    
    
  });