Почему не срабатывает событие для новых элементов добавленных через submit?
Что только не перепробовал, не срабатывает событие на элементы которые добавлены через оброботчик submit.
var list = document.querySelector('.todo-list');
var items = list.children;
const newItemForm = document.querySelector('.add-form');
const newItemTitle = newItemForm.querySelector('.add-form-input');
const taskTemplate = document.querySelector('#task-template').content;
const newItemTemplate = taskTemplate.querySelector('.todo-list-item');
var checkboxs = document.querySelectorAll('.todo-list-input');
function toggleClassCompleted() {
for (let i = 0; i < checkboxs.length; i++) {
if (checkboxs[i].checked) {
items[i].classList.add('completed')
} else {
items[i].classList.remove('completed')
}
};
};
list.addEventListener('change', function(evt) {
if (evt.target.className != items) toggleClassCompleted();
});
newItemForm.addEventListener('submit', function (evt) {
evt.preventDefault();
const taskText = newItemTitle.value;
const task = newItemTemplate.cloneNode(true);
const taskDescription = task.querySelector('span');
taskDescription.textContent = taskText;
list.appendChild(task);
newItemTitle.value = '';
removingTaskOnButton(task);
});
Интересно что на те элементы которые были все ок, а вот именно те которые добавил не работает, удаление кстати говоря работает, а добавление класса почему то нет, ощущение что коллекция items после submit не обновляется, заранее спасибо!)
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
newItemForm.addEventListener('submit', function (evt) {
evt.preventDefault();
const taskText = newItemTitle.value;
const task = newItemTemplate.cloneNode(true);
const taskDescription = task.querySelector('span');
taskDescription.textContent = taskText;
list.appendChild(task);
newItemTitle.value = '';
removingTaskOnButton(task);
checkboxs = document.querySelectorAll('.todo-list-input'); // !!!
});
if (evt.target.className != items)
Что здесь с чем сравнивается?