mrerberg
@mrerberg
Yep

Как повесть на блок класс при изменении значения у input?

Проблема:
При изменении значения слайдера, цвета блока должны меняться. Но у меня не выходит из-за корявых рук. Где я ошибся?

Код:
https://jsfiddle.net/yhp7mkmn/4/

Полагаю,что вопрос банален. Я понимаю,как нужно это сделать в теории, но на практике не выходит. Не подскажите,где ошибка?
  • Вопрос задан
  • 83 просмотра
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Полагаю,что вопрос банален.

Действительно. Так что вот вам вместо ответа ряд наводящих вопросов:
  • Значение какого типа возвращает метод val?
  • А сравниваете вы его со значениями какого типа?
  • В чём разница между операторами == и ===?
Ответ написан
Комментировать
rockon404
@rockon404
Frontend Developer
1. вы используете селектор .test, а такого селектора у вас в HTML коде нет.
2. событие надо использовать input, так как change срабатывает только когда отпускаешь клавишу мыши.
3. значение input надо приводить к number, так как он возвращает строку. Самый простой способ использовать для этого оператор +:
var p = +$('input').val();
4. вместо классов в таких кейсах удобней использовать метод css
5. несколько условий if друг за другом, проверяющих одно и то же значение, использовать неправильно. Так как если сработало первое условие, следующие тоже будут проверены. Либо используйте в таких случаях связку else if, либо switch case.
if (p === 1) {
  // do something
} else if (p === 2) {
  // do something else        
}

switch(p) {
  case 1:
    // do something
    break;
  case 2:
    // do something else
    break;
}

Исправленный вариант.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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