I'm having a weird issue with dragging and dropping in html5.
Panel A has a list of the type of elements you can drag. Panel B is where the elements are dragged. Panel C and D are other places you can drag elements, and you can drag and rearrange elements between Panels B, C and D.
My issue is that I'm able to drag an element and drop it INSIDE of another element that's inside one of the panels, which I don't want the user to be able to do. The child elements of those panels don't have any kind of javascript or drag-related properties attached to them, and yet they are currently allowing elements to be dragged inside them.
I've tried attaching ondrop='return false;' and ondragover='return false;', but neither has worked.
Surely there is a way to turn off the 'allow dragging into' property on an element?
Here's my code:
<div id=elem-002 draggable=true ondragstart=drag(event)>content</div>
The main panel:
<div id=panel-b ondrop=drop(event) ondragover=allowDrop(event)>
<div id=elem-001 draggable=true ondragstart=drag(event)>content</div>
</div>
The JS:
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData(Text, ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData(Text);
ev.target.appendChild(document.getElementById(data));
}
Said another way: I'm able to drag my elem-002 directly into elem-001, an element that was already dragged in. This causing nesting of elements that I don't want to occur. How can I prevent this?