@lanimya

Как повесить обработчик событий на несколько элементов?

На странице есть несколько элементов, но событие срабатывает только на первом.
Codepen
При клике открывается только первый список.
Пробовала несколькими способами, некоторые срабатывали, т.е. открывались все списки. Но переставал работать выбор внутри этих списков. Можно проверить разкомментив код в js.
Как повесить событие на все, чтобы при этом выбор элементов работал корректно?

P.S. код для раскрывашки взяла отсюда
Нашла такой же вопрос, поэтому же коду, но не могу понять как сделать.
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ответы на вопрос 2
@tarasvasilev
document.querySelector находит только самый первый элемент.
Для выборки всех элементов используйте document.querySelectorAll

document.querySelectorAll('.__select__title').forEach(e => {
  e.addEventListener('click', (event){
    // событие к элементу event
  });
});

Но лучший вариант - использовать делегирование событий, навешивая одну прослушку на общий родительский элемент.
Ответ написан
@dennis_d
стремлюсь к junior front-end developer
примерно так

let elements = document.querySelectorAll('class-of-element')

for (let i = 0; i < elements.lenght; i++) {
      elements[i].addEventListener('click', ()=> {
             DO SOMETHING.....
})
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 сент. 2020, в 12:04
1000 руб./в час
19 сент. 2020, в 11:26
17500 руб./за проект
19 сент. 2020, в 10:21
10000 руб./за проект