Задать вопрос
@boluchevskii

Как вывести 4 красных квадрата, при клике на любой, он становиться зеленым, при этом если есть уже зеленый квадрат, то он становиться обратно красным?

Вывести 4 красных квадрата, при клике на любой, он становиться зеленым, при этом если есть уже зеленый квадрат, то он становиться обратно красным и так можно кликать на любой квадрат, он становиться зеленым, а старый зеленый квадрат обратно крассным и тд. (Сделать задачу так, чтобы можно было добавить ещё хоть 100 квадратов при этом скрипт не надо менять).

Код не работает. Помогите, пожалуйста, исправить.

<div id="js" class="box">
    <div class="square"></div>
    <div class="square"></div>
    <div class="square"></div>
    <div class="square"></div>
  </div>


.box {
	display: flex;
	flex-direction: row;
	gap: 10px;
  }
  .square {
	width: 70px;
	height: 70px;
	background-color: red;
	cursor: pointer;
  }


document.querySelector('#js').addEventListener(
    'click',
    (e) => {
    if (!e.target.classList.contains('square')) {
    return;
    }
    document.querySelector('div.green')?.classList.remove('green');
    e.target.classList.add('green');
  }
)
  • Вопрос задан
  • 152 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 1
.green { background-color: green; }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы