使用jQuery移动翻转开关更改文本颜色

时间:2014-02-16 04:38:25

标签: javascript jquery jquery-mobile-flipswitch

我正在尝试根据查询移动翻转开关是打开还是关闭来更改2个类的文本颜色。我的印象是翻转开关只是一个复选框,其中处于打开状态,未选中关闭状态。我的javascript体验很小。 有谁知道如何解决这个问题?

CLASSES

<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>

SWITCH

<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 个答案:

答案 0 :(得分:2)

你需要将它包装在一个事件中;特别是一个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")
  }
});

jsFiddle here.

更简短的方法:

$("#flip-checkbox-4").change(function(){
   $(".text-left").css("color", this.checked ? "grey" : "blue");
   $(".text-right").css("color", this.checked ? "blue" : "grey");
});

jsFiddle here.