Les éléments enfants sont permettant ainsi de glisser/déposer

J'ai un étrange problème avec le glisser-déposer dans html5.

Panneau Un a une liste des types d'éléments que vous pouvez faire glisser. Panneau B est l'endroit où les éléments sont déplacés. Panneau C et D sont les autres endroits où vous pouvez faire glisser des éléments, et vous pouvez faire glisser et de réorganiser les éléments entre les Panneaux B, C et D.

Mon problème est que je suis en mesure de faire glisser un élément et de le déposer à l'INTÉRIEUR d'un autre élément qui est à l'intérieur de l'un des panneaux, que je ne veux pas que l'utilisateur soit en mesure de le faire. L'enfant des éléments de ces panneaux n'ont pas de genre de javascript ou de le glisser propriétés liées attaché à eux, et pourtant ils sont actuellement en permettant que des éléments à glisser à l'intérieur d'eux.

J'ai essayé de fixer le ondrop= " return false;" et "ondragover='return false;'", mais aucune n'a fonctionné.

Il y a sûrement un moyen de désactiver la " autoriser les glisser dans la propriété sur un élément?

Voici mon code:

<div id="elem-002" draggable="true" ondragstart="drag(event)">content</div>

Le panneau principal:

<div id="panel-b" ondrop="drop(event)" ondragover="allowDrop(event)">
  <div id="elem-001" draggable="true" ondragstart="drag(event)">content</div>
</div>

Le 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));
}

Dit d'une autre manière: je suis en mesure de faire glisser mon "elem-002" directement dans "elem-001", un élément qui a déjà été emportée. Cela provoque l'imbrication des éléments que je ne veux pas de se produire. Comment puis-je éviter cela?

InformationsquelleAutor Zerkeras | 2014-06-10