SG
Avoid putting task into each others simply adding .closest('.skanban-block'): function drop(ev) { ev.preventDefault(); var data = ev.dataTransfer.getData("text"); ev.target .closest('.skanban-block') .appendChild(document.getElementById(data)); } Another nice feature is to move a task between two to sort tasks.