You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.1 KiB
36 lines
1.1 KiB
let currentDraggedItem = null;
|
|
|
|
const lisAndBody = document.querySelectorAll('li, body');
|
|
for(const element of lisAndBody){
|
|
element.addEventListener('dragstart', (event)=>{
|
|
currentDraggedItem = event.target;
|
|
})
|
|
element.addEventListener('dragover', (event)=>{
|
|
event.preventDefault()
|
|
event.target.classList.add('dragging');
|
|
})
|
|
element.addEventListener('dragleave', (event)=>{
|
|
event.target.classList.remove('dragging');
|
|
})
|
|
element.addEventListener('drop', (event)=>{
|
|
event.stopPropagation()
|
|
event.target.classList.remove('dragging');
|
|
event.target.children[0].appendChild(currentDraggedItem)
|
|
})
|
|
}
|
|
|
|
const deleteButtons = document.querySelectorAll('button.delete');
|
|
for (const deleteButton of deleteButtons) {
|
|
deleteButton.addEventListener('click', (event)=>{
|
|
event.target.parentNode.remove()
|
|
})
|
|
}
|
|
|
|
const addButtons = document.querySelectorAll('button.add');
|
|
for (const addButton of addButtons) {
|
|
addButton.addEventListener('click', (event)=>{
|
|
const template = document.querySelector('template').content.children[0];
|
|
event.target.parentNode.children[0].appendChild(template.cloneNode(true))
|
|
})
|
|
}
|