Например код через цикл:
for (let nodes of contents.querySelectorAll('a')) {
nodes.addEventListener('click', (event) => {
let quest = confirm(`Leave for ${nodes.href}`)
if (quest) return
event.preventDefault()
})
}
А вот код с делегированием:
contents.onclick = function(event) {
function handleLink(href) {
let isLeaving = confirm(`Leave for ${href}?`);
if (!isLeaving) return false;
}
let target = event.target.closest('a');
if (target && contents.contains(target)) {
return handleLink(target.getAttribute('href'));
}
};
Представим, что 1000 элементов. Автор учебника уверяет, что делегирование в таком случаи незаменимо. В целом, согласен. Но ведь можно использовать просто цикл? Или, как я понимаю, 1000 обработчиков грузят систему куда серьезнее, чем 1 на всего родителя. Нужно мнение спецов)