Добавление прослушивателей событий для каждого li не очень хорошо, так как если их много, у вас будет много обработчиков. Вы можете использовать делегирование событий для решения проблемы. Каждое событие, которое происходит с элементом, распространяется наверх к его родителю, к Гранд-родителям и так далее. Таким образом, вы можете добавить только один прослушиватель событий на ul и определить, на каком из них произошел щелчок, и выполнить обработку, как мудрый. Вот пример:
document.getElementById("list").addEventListener("click", function(e) {
// e.target is the clicked element!
// If it was a list item
if(e.target && e.target.nodeName == "LI") {
// List item found! Output the ID!
console.log("List item ", e.target.id.replace("post-", ""), " was clicked!");
}
});
Надеюсь, это поможет