function
dragStart(event) {
event.dataTransfer.setData(
"text/plain"
, event.target.id);
}
function
allowDrop(event) {
event.preventDefault();
}
function
drop(event) {
event.preventDefault();
var
temp = event.dataTransfer.getData(
"text/plain"
);
var
dragEle = document.getElementById(temp);
var
dropEle = event.target;
if
(dragEle.classList.contains(
"draggable"
) && dropEle.classList.contains(
"droppable"
)) {
dropEle.appendChild(dragEle);
}
else
if
(dragEle.classList.contains(
"draggable"
) && dropEle === document.body) {
document.body.appendChild(dragEle);
}
}
var
currEle =
null
;
document.addEventListener(
"dragstart"
,
function
(e) {
currEle = e.target;
});
document.addEventListener(
"dragover"
,
function
(e) {
e.preventDefault();
});
document.addEventListener(
"drop"
,
function
(e) {
if
(currEle && e.target.classList.contains(
"draggable"
)) {
var
p = currEle.parentNode;
var
t = e.target;
var
pInd = Array.from(p.children).indexOf(currEle);
var
tInd = Array.from(p.children).indexOf(t);
if
(p === t.parentNode && pInd >= 0 && tInd >= 0) {
p.insertBefore(t, currEle);
p.insertBefore(currEle, t);
}
}
});