<script>
'use strict';
-(() => {
+//(() => {
+ const childOf = (p,e) => e && (e === p || childOf(p, e.parentNode));
+
const drag_start = (ev) => {
ev.target.id = "selected-card";
ev.dataTransfer.setData("text/plain", ev.target.id);
ev.preventDefault();
const tgt = ev.target;
const data = document.getElementById(ev.dataTransfer.getData("text"));
+ Array.from(document.getElementsByClassName("drag-target")).forEach((e) => e.classList.remove("drag-target"));
+ data.id = "";
if (tgt.tagName === "H2") {
tgt.parentNode.appendChild(data);
} else if (tgt.classList.contains("card")) {
tgt.parentNode.insertBefore(data, tgt);
- } else {
+ } else if (!childOf(data, tgt)) {
tgt.appendChild(data);
}
- data.id = "";
- Array.from(document.getElementsByClassName("drag-target")).forEach((e) => e.classList.remove("drag-target"));
}
window.onclick = (ev) => {
cards[i].ondragstart = drag_start;
cards[i].draggable = true;
}
-})();
+//})();
</script>
</body>
</html>