@Shimpanze

JavaScript: почему не срабатывает функция?

Здравствуйте!

Написал функцию, которая определяет что у атрибута «style» задано свойство со значением «background-color: #fff0f5» и переключает его по клику на «background-color: #f0f8ff».

При первом клике цвет переключается, а при втором уже не хочет. Почему не срабатывает условие «else»?

Код на jsfiddle.net.

<input type="button" value="Переключить">
<p style="background-color: #fff0f5; width: 50%; color: #000;">Hello, World!</p>


/* Определяем переменные */
var btn = document.querySelector('input');
var txt = document.querySelector('p');

/* Вешаем на клик функцию */
btn.addEventListener('click', function() {
  if (txt.style.backgroundColor='#fff0f5') {
    txt.style.backgroundColor='#f0f8ff';
  }
  else {
    txt.style.backgroundColor='#fff0f5';
  }
}, false);


Мне необходим контроль именно за определенным свойством (необязательно цветом) и его значением в атрибуте «style» (не затрагивая остальные).

Буду благодарен за помощь и разъяснения.
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
Rema1ns
@Rema1ns
и так сойдет
Если вы бы вывели в консоль
console.log(txt.style.backgroundColor);
То увидели бы что возвращается цвет не так как вы его задали.
rgb(255, 240, 245)

Поэтому ваше сравнение не работает
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@kttotto
пофиг на чем писать
Ошибка здесь
if (txt.style.backgroundColor='#fff0f5')
Вы его здесь присваиваете, а не сравниваете.
Исправьте на
if (txt.style.backgroundColor == '#fff0f5')
Ответ написан
@balamyt92
; select * from users; --
if (txt.style.backgroundColor == 'rgb(255, 240, 245)')
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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