Не удаляет дело со списка to do list
let work = document.querySelector(".list")
let add = document.querySelector("#add");
let list = document.querySelector("#todos")
let remove = document.querySelector("#remove")
add.addEventListener("click", function() {
let addlist = `<div class="todos">
<div class="work">${input.value}</div>
<button class="remove btn btn--red" id="remove" type="button">remove</button>
</div>`;
list.innerHTML += addlist;
input.value = "";
work.addEventListener("click", checked)
work.addEventListener("click", removework)
})
function checked(event) {
target = event.target;
if (target.className != "work") {
return 0;
}
target.style.textDecoration = "line-through"
}
function removework(e) {
target = e.target
if (!target.classList.contains("remove")) {
return 0
}
target.closest(".todos").remove()
}
<div class="container">
<div class="list">
<h1>To do list</h1>
<form class="form" action="/">
<input id="input" class="input" type="text">
<button class="btn" id="add" type="button">Add item</button>
</form>
<div class="dolist" id="todos"></div>
</div>
</div>
Ответы (1 шт):
Автор решения: Oliver Patterson
→ Ссылка
Работает? (Увы делал с телефона, нет возможности проверить)
const btnAdd = document.querySelector('.list__add');
const inpTask = document.querySelector('.list__input');
const todosBlock = document.querySelector('.list-todos');
let todosList = [];
btnAdd.addEventListener("click", function() {
let taskId = todosList.push({task: inpTask.value, checked: false});
taskId--;
let html = `
<div class="list-todos__item" data-id="${taskId}">
<div class="list-todos__task" data-id="${taskId}">${inpTask.value}</div>
<button class="list-todos__remove btn btn--red" type="button" data-id="${taskId}">remove</button>
</div>`;
todosBlock.innerHTML += html;
inpTask.value = '';
});
todosBlock.addEventListener("click", function(e) {
if (e.target.classList.contains("list-todos__task")) {
toggleChecked(e.target);
}
else if (e.target.classList.contains("list-todos__remove")) {
removeTask(e.target);
}
});
function toggleChecked(target) {
let taskId = target.dataset.id;
let taskItem = todosBlock.querySelector(`.list-todos__item[data-id="${taskId}"]`);
let isChecked = (todosList[taskId].checked = !todosList[taskId].checked);
taskItem.classList.toggle('list-todos__item--checked', isChecked);
}
function removeTask(target) {
let taskId = target.dataset.id;
let taskItem = todosBlock.querySelector(`.list-todos__item[data-id="${taskId}"]`);
taskItem.remove();
delete todosList[taskId];
}
.list-todos__item--checked .list-todos__task
{
text-decoration: line-through;
}
<div class="container">
<div class="list">
<h1>To do list</h1>
<form class="form" action="/">
<input class="list__input" type="text">
<button class="list__add btn" type="button">Add item</button>
</form>
<div class="list-todos"></div>
</div>
</div>