@historydev
Острая аллергия на анимешников

Как задать фон и цвет всем объектам по которым не произведён клик?

Добрый вечер. Помогите пожалуйста, в гугле цитируется мой код, но возможно я не так гуглил, мне нужно реализовать подобие радио кнопок,вот мой код:

document.querySelectorAll('.answer').forEach(ans => {

		ans.onclick = (e) => {

			answer = e.target.innerHTML

			ans.style.background = '#222'
			ans.style.color = '#fff'

			e.target.style.background = '#fff'
			e.target.style.color = '#222'

		}

	})
  • Вопрос задан
  • 83 просмотра
Решения вопроса 2
@Asokr
Что в теле вопроса, не очень понятно, но если нужно,
Задать фон и цвет всем объектам по которым не произведён клик?
То, что то типа такого:
https://codepen.io/asokr/pen/RwNjryQ
var classname = document.getElementsByClassName('answer');
function myFunction(e){
  document.querySelectorAll('.answer').forEach(ans => {
    ans.style.background = '#222'
    ans.style.color = '#aeaeae'
  });
  e.target.style.background = '#fff'
  e.target.style.color = '#000'
}
for (var i = 0; i < classname.length; i++) {
    classname[i].addEventListener('click', myFunction, false);
}
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
Аккуратнее вынести стили в CSS. Скажем, стили по умолчанию у всех и некий класс active для единственного выбранного элемента:
div.answer { background: #222; color: #aeaeae; }
div.answer.active { background: #fff; color: #000; }


Тогда скрипт примерно такой:
const els = [...document.querySelectorAll('.answer')];

const toggle = event => {
  els.forEach(el => el.classList[event.target === el ? 'add' : 'remove']('active'));
}

els.forEach(el => el.addEventListener('click', toggle));

Fiddle
spoiler

Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
17 мая 2024, в 11:52
2500 руб./за проект
17 мая 2024, в 11:43
5000 руб./за проект
17 мая 2024, в 11:41
15000 руб./за проект