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.