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

Можно ли назначить двум элементам одно и тоже событие? Как можно улучшить этот код?

Как можно улучшить этот код ? Можно ли назначить двум элементам одно и тоже событие ?
funtion changeBgColor(letterColorFirst, bgColorFirst, letterColorSecond, bgColorSecond) {
  if (letterColorFirst != this.style.background) {
    this.style.background = bgColorFirst;
    this.style.background = letterColorFirst;
  } else {
    this.style.background = bgColorSecond;
    this.style.background = letterColorSecond;
  }
}

var commonFunction = function () {
  changeBgColor.call(this, 'red', 'blue', 'green', 'yellow')
}

elem1.addEventListener('click', commonFunction);
elem2.addEventListener('click', commonFunction);
  • Вопрос задан
  • 75 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dimoff66
Кратко о себе: Я есть
Одно событие двум элементам назначить можно, а два цвета одному фону назначить нельзя, видимо имелось ввиду
if (letterColorFirst != this.style.color) {
    this.style.background = bgColorFirst;
    this.style.color = letterColorFirst;
} else {
    this.style.background = bgColorSecond;
    this.style.color = letterColorSecond;
}


Либо вариант в три строки
var isFirst = letterColorFirst !== this.style.color;
this.style.color = isFirst ? letterColorFirst : letterColorSecond;
this.style.background = isFirst ? bgColorFirst : bgColorSecond;
Ответ написан
Ваш ответ на вопрос

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

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