есть мы можем написать $('ul').on('click', 'li', function(){$('ul').append(<li>new</li>)}) и обработчик будет вешаться на каждый элемент который создан. Как такое можно на ваниле реализовать?
делегирование событий называется) где узнать подробно, я думаю ты сам знаешь)
QuerySelectorAll - создает статическую коллекцию. На новые созданные элементы не будет вешаться обработчик. Тут либо обновлять обработчкик при добавлении элемента, чтоб вновь созданные зацепило. Либо использовать GetElementBy... - динамическая коллекция, гдето там под капотом калашматит бесконечный цикл поиска элементов. Либо в случае с querySelector использовать делегирование событий, обработчик вешать один на ul и обрабатывать клики по event.Target. Наверняка есть еще куа способов. PS если я правильно понял вопрос, что на чистом js не работают события на созданных элементах списка при клике...
Обсуждают сегодня