JSFiddle - React, Tailwind, and code Playground
HTML
<div id="Markup" class="dropzone">Markup</div>
<div id="Style" class="dropzone">Style</div>
<ul>
<li draggable="true">HTML5</li>
<li draggable="true">CSS3</li>
<li draggable="true">XHTML 1</li>
<li draggable="true">JavaScript</li>
</ul>
CSS
.dropzone {
text-align: center;
background: #EEE;
border: 0.2em solid #000;
padding: 3em;
margin: 0.5em 0;
}
.dropzone.valid {
background: #EFE;
border: 0.2em solid #0F0;
}
ul {
list-style: none;
margin: 0;
padding: 0;
}
li {
background: #EEE;
border: 0.2em solid #000;
padding: 0.5em;
margin: 0.5em 0;
}
[draggable=true] {
cursor: move;
}
JavaScript
$('li').on('dragstart', function(evt){
console.log('Start');
evt.originalEvent.dataTransfer.setData('text', 'Hallo Welt!');
});
$('li').on('drag', function(evt){
//console.log('Drag');
});
$('li').on('dragend', function(evt){
console.log('Ende');
});
$('.dropzone').on('dragover', function(evt){
evt.preventDefault();
//console.log("over elem");
});
$('.dropzone').on('dragenter', function(evt){
$(this).addClass('valid');
evt.preventDefault();
console.log("entered");
});
$('.dropzone').on('dragleave', function(evt){
$(this).removeClass('valid');
console.log("left");
});
$('.dropzone').on('drop', function(evt){
evt.preventDefault();
//$(this).removeClass('valid');
//window.alert(evt.originalEvent.dataTransfer.getData('text'));
});