Skip to content

Instantly share code, notes, and snippets.

@samundrak
Created April 23, 2017 09:59
Show Gist options
  • Save samundrak/d1f88cb59f4e09415c9d81a241b7aafd to your computer and use it in GitHub Desktop.
Save samundrak/d1f88cb59f4e09415c9d81a241b7aafd to your computer and use it in GitHub Desktop.
Low level api
let draggedElement = null;
let targetedElement = null;
function handleDragStart(event) {
event.dataTransfer.setData('text', event.target.parentNode.innerHTML);
}
function handleDrop(event) {
event.preventDefault();
const src = event.dataTransfer.getData('text');
const context = event.target;
const currentContainer = getParentContainer(context);
const currentTarget = currentContainer.innerHTML;
currentContainer.innerHTML = src;
targetedElement = currentTarget;
}
function allowDrop(event) {
event.preventDefault();
}
function handleDragEnd(event) {
event.target.parentNode.innerHTML = targetedElement;
}
function getParentContainer(target) {
if (target.parentNode.getAttribute('class').includes('row')) {
return target.parentNode;
}
return getParentContainer(target.parentNode);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment