Примечание: Вы получаете ошибку, потому что вы вызываете addEventListener
для возвращаемого значения querySelectorAll
, то есть NodeList
, у которого нет функции с именем addEventListener
, Используйте querySelector
вместо querySelectorAll
.
Чтобы выполнить делегирование события, вам нужно установить прослушиватель события на одном из предков ваших элементов (например, #thumbnails
), затем, когда происходит щелчок, проверьте, является ли цель события изображением:
var container = document.querySelector("#thumbnails"); // select the ancestor, use querySelector instead of querySelectorAll
container.addEventListener("click", function(event) { // add the click event listener to it
var target = event.target; // when the click happens, get the target of the click
if(target.matches("img")) { // check if the target is one of our img (the selector passed to "matches" could be any css selector, for example "#thumbnails > img", ...)
console.log(target.title); // use the element, or whatever
}
});
Пример: