класс focus не добавляется с первого клика, а вот со второго всё работает так, как и должно. В чём может быть причина?
У тебя 2 функции с click.
Потому что в первом обработчике клика ты вешаешь на все кнопки еще обработчики клика, но уже те, которые добавят класс. В первом же обработчике должен выполняться код с добавлением или удалением класса
Если на скорую, то я исправил js код на вот такой: const radioBtns = document.querySelectorAll('.second__btn'); radioBtns.forEach((element)=>{ element.addEventListener('click', () => { if (element.classList.contains('focus')){ radioBtns.forEach((element) =>{ element.classList.remove('focus'); }) } element.classList.add('focus'); }); });
const radioBtns = document.querySelectorAll(".second__btn"); const radio = function () { radioBtns.forEach((element) => { if (element.classList.contains("focus")) { element.classList.remove("focus"); } }); this.classList.add("focus"); }; radioBtns.forEach((element) => { element.addEventListener("click", radio); });
выбирай какой тебе больше из трех нравится const radioBtns = document.querySelectorAll('.second__btn'); function onRadioClick(e) { const element = e.currentTarget; if (!element.classList.contains('focus')){ radioBtns.forEach((btn) => { btn.classList.remove('focus'); }) } element.classList.add('focus'); }; radioBtns.forEach((element) =>{ element.addEventListener('click', onRadioClick); })
Обсуждают сегодня