@andreypodkovyrov

Можно ли применить onclick="ChangeColor( )", чтобы изменить цвет двух элементов одновременно?

В javascript не силен, нужна подсказка. Хочу по клику изменить цвет двух ячеек в таблице.

Как пробую сделать:
<th id="sto">100</th>
<td onclick="ChangeColor( this, '#FEEC88' ); ChangeColor( sto, '#FEEC88' )">&nbsp;</td>


Не работает. По отдельности всё ок.
  • Вопрос задан
  • 3348 просмотров
Пригласить эксперта
Ответы на вопрос 3
<th id="sto">100</th>
<td onclick="ChangeColor( this, '#FEEC88' ); ChangeColor( document.getElementById("sto"), '#FEEC88' )">&nbsp;</td>

без изменения JS. Либо так:
<th id="sto">100</th>
<td onclick="ChangeColor( [this, document.getElementById("sto")], '#FEEC88' )">&nbsp;</td>

но тогда заменяем и JS:
var last_change = [];
var last_color = [];
function ChangeColor( elements, color ){
   if (typeof element !== 'array') {
      elements = [elements];
   }
   for (var i = elements.length; --i;) {
      var element = elements[i];
      if( last_change[element.id] != null ){
          last_change[element.id].style.backgroundColor = last_color[element.id];
      }
      last_change[element.id] = element;
      last_color[element.id] = element.style.backgroundColor;
      element.style.backgroundColor = color;
   }
}
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
ChangeColor(document.getElementById("sto"), "#FEEC88");
Ответ написан
4ikist
@4ikist
А почему бы и нет, только с передачей элемента у вас наверное стоит пофиксить, а лучше сделайте поддержку массива элементов:

ChangeColor([this, '#sto'], '#FEEC88' )
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы