-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdragNdrop.js
62 lines (55 loc) · 1.66 KB
/
dragNdrop.js
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
(function() {
//alert("test");
dndHandler = {
draggablElement: null,
applyDragEvent: function(element) {
element.draggable = true;
dhandlerContext = this;
element.addEventListener(
"dragstart",
function(e) {
e.preventDefault;
dhandlerContext.draggablElement = e.target;
},
false
);
},
applyDropEvent: function(droper) {
droper.addEventListener("dragover", function(e) {
e.preventDefault();
//this.className = "black";
});
droper.addEventListener("draleave", function(e) {
e.preventDefault();
droper.className = "black";
});
droper.addEventListener("drop", function(e) {
e.preventDefault();
//alert(e.target);
let clonElement = dndHandler.draggablElement.cloneNode(true);
console.log(clonElement.classList);
let classArray = clonElement.classList;
if (classArray.contains("blue")) {
clonElement.classList.remove("blue");
} else {
clonElement.classList.add("blue");
}
let dropeZone = e.target;
dropeZone.appendChild(clonElement);
dndHandler.draggablElement.parentNode.removeChild(
dndHandler.draggablElement
);
dndHandler.applyDragEvent(clonElement);
});
}
};
const drager = document.querySelectorAll(".drager");
const droper = document.querySelectorAll(".droper");
console.log(droper.length);
for (let i = 0; i < drager.length; i++) {
dndHandler.applyDragEvent(drager[i]);
}
for (let i = 0; i < droper.length; i++) {
dndHandler.applyDropEvent(droper[i]);
}
})();