-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathscript.js
More file actions
82 lines (70 loc) · 2.23 KB
/
Copy pathscript.js
File metadata and controls
82 lines (70 loc) · 2.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
document.getElementById("button").addEventListener("click", addBox);
var draggingItem, draggedOverItem, draggedBox, draggedOverBox;
//Add Box
function addBox() {
//DOM Elements
var box = document.createElement("div");
var header = document.createElement("header");
var list = document.createElement("ul");
var footer = document.createElement("footer");
//Element Header
header.innerHTML = prompt("Introduce the name of the list: ");
header.addEventListener('drag', setDraggingBox);
header.addEventListener('dragover', setDraggedOverBox);
header.addEventListener('drop', compareBoxes);
header.box = box;
//Element List (already created)
//Element Footer
footer.innerHTML = "Add a card...";
footer.list = list;
footer.addEventListener("click", addItem);
//Appending elements to Element Box
box.className = "list";
box.appendChild(header);
box.appendChild(list);
box.appendChild(footer);
//Appending Box to Element Boxes
document.getElementById("boxes").appendChild(box);
}
//Add Item
function addItem(e) {
//DOM Elements
var list = e.currentTarget.list;
var item = document.createElement("li");
//Element Item
item.list = list;
item.innerText = prompt("Introduce nueva tarea");
item.draggable = true;
item.addEventListener('drag', setDraggingItem)
item.addEventListener('dragover', setDraggedOverItem)
item.addEventListener('drop', compareItems)
//Appending Item to Element List
list.appendChild(item);
}
//Drag & Drop boxes
const compareBoxes = (e) => {
var boxes = document.getElementById("boxes");
boxes.insertBefore(draggingBox, draggedOverBox);
};
const setDraggedOverBox = (e) => {
e.preventDefault();
draggedOverBox = e.currentTarget.box;
}
const setDraggingBox = (e) => {
e.preventDefault();
draggingBox = e.currentTarget.box;
}
//Drag & Drop Items
const compareItems = (e) => {
var list = draggedOverItem.list;
draggingItem.list = list;
list.insertBefore(draggingItem, draggedOverItem);
};
const setDraggedOverItem = (e) => {
e.preventDefault();
draggedOverItem = e.currentTarget;
}
const setDraggingItem = (e) => {
e.preventDefault();
draggingItem = e.currentTarget;
}