Изменить цвет текста с помощью мобильного переключателя jQuery
Я пытаюсь изменить цвет текста для 2 классов в зависимости от того, включен или выключен мобильный флип-переключатель запроса. У меня сложилось впечатление, что переключатель - это просто флажок с включенным состоянием проверки и выключенным состоянием без проверки. Мой опыт работы с JavaScript минимален. Кто-нибудь знает, как я могу это исправить?
КЛАССЫ
<div class="text-left">Make me blue when switch is off and grey when on </div>
<div class="text-right">Make me blue when switched is on and grey when off</div>
ВЫКЛЮЧАТЕЛЬ
<form>
<input type="checkbox" data-role="flipswitch" name="flip-checkbox-4" id="flip-checkbox-4" data-wrapper-class="custom-size-flipswitch">
</form>
JAVASCRIPT
<script type="text/javascript">
if($("#flip-checkbox-4").is(":checked")) {
$(".text-left").css("color", "grey");
$(".text-right").css("color", "blue");
} else {
$(".text-left").css("color", "blue");
$(".text-right").css("color", "grey")
}
</script>
1 ответ
Решение
Вы должны обернуть это внутри события; в частности, change()
событие, чтобы выслушать, когда checked
свойство ввода изменено:
$("#flip-checkbox-4").change(function(){
if($("#flip-checkbox-4").is(":checked")) {
$(".text-left").css("color", "grey");
$(".text-right").css("color", "blue");
} else {
$(".text-left").css("color", "blue");
$(".text-right").css("color", "grey")
}
});
Более короткий способ сделать это:
$("#flip-checkbox-4").change(function(){
$(".text-left").css("color", this.checked ? "grey" : "blue");
$(".text-right").css("color", this.checked ? "blue" : "grey");
});