Задать вопрос
und88
@und88
student (=

Как при клике на кнопку менялся цвет у одного из 3х элементов?

Доброго вечера друзья.
НЕ могу понять как, при клике на кнопку менять цвет у элементов.
CodePen
Даны 3 элемента с разными цветами. Даны кнопки. Например, по клику на первую кнопку, первый элемент красится в синий, ещё раз кликаю - второй в синий и т.д.
Для другой кнопки другой цвет..
Получил массив элементов, далее для каждой кнопки вешаю addEventListener и вызываю функцию.
Как лучше реализовать, лезть и менять style или добавлять или удалять классы с background?

Благодарю за помощь в объяснении..
  • Вопрос задан
  • 753 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 2
dnulled
@dnulled
PHP & JavaScript developer
Конечно сомневаюсь, что это правильное решение, но как вариант:
let colors = {
  'orange': 'rgb(255, 165, 0)',
  'blue': 'rgb(0, 0, 255)'
}, buttons = document.getElementsByClassName('btn'), buttonListener = (e) => {
  let currentColor = e.srcElement.innerHTML, circles = document.getElementsByClassName('c');
  
  for(let i = 0; i < circles.length; i += 1) {
    let currentCircle = circles[i];
    
    if(!currentCircle.style['background-color'] || currentCircle.style['background-color'] != colors[currentColor]) {
      currentCircle.style['background-color'] = colors[currentColor];
      break;
    } else continue;
    
  }
  
};

Array.from(buttons, btn => btn.addEventListener('click', buttonListener));
Ответ написан
Комментировать
StivinKing
@StivinKing
Пример. Далее можете улучшить
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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