Не работает click по классу добавленному через classList
Помогите пожалуйста разобраться.
Я добавляю класс к элементу по клику.
on('click', '.mobile-nav-toggle', function(e) {
select('.nav-link').classList.toggle('nav-link-mobile')
})
После чего я хочу через клик по этому классу выполнить еще код, но ничего не работает.
on('click', '.nav-link-mobile', function(e) {
тут код
})
Ответы (1 шт):
Проблема заключается в том, что обработчик событий, назначенный на элемент с классом .nav-link-mobile, не срабатывает, потому что этот элемент не существует на момент назначения обработчика.
Можно использовать делегирование событий. То есть, вместо того, чтобы назначать обработчик событий на элемент с классом .nav-link-mobile, можно назначить обработчик на родительский элемент, который уже существует на момент назначения обработчика.
Например, если родительский элемент имеет класс .nav-links-container, то можно использовать следующий код:
// Назначить обработчик на родительский элемент .nav-links-container
on('click', '.nav-links-container', function(e) {
// Проверить, что кликнули на элемент с классом .nav-link-mobile
if (e.target.matches('.nav-link-mobile')) {
// Тут код для обработки клика на элементе .nav-link-mobile
}
});