jQuery Mobile Flip Switch样式

时间:2012-10-03 08:19:18

标签: jquery css mobile

我发现可以使用以下代码自定义jQuery Mobile翻转开关的字体,颜色和字体大小

CSS

.contel *{font-family:arial !important;color:red !important;font-size:0.8em !important}

标记

<div class="contel">
 <select name="flip-1" id="flip-1" data-role="slider">
<option value="off">Off</option>
<option value="on">On</option>
 </select>
</div>

这非常好,但我需要做的是在运行时根据具体情况而不是静态CSS应用这样的样式。

问题归结为此 - 有没有办法通过jQuery实现这一目标?

我尝试过的事情
$.each($('.contel > *'),function(ndx,e){$(e).css('fontFamily','arial')});

但它没有任何效果。我非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

为什么不上课,然后才触发事件

.addClass() ;

答案 1 :(得分:0)

在我发布此查询并发现一些有趣的事情之后,我更深入地了解了。

  • 首先,jQuery&gt; selector仅返回子元素。在翻转开关的情况下,要设计样式的元素实际上是孙子。所以我的代码应该是

    $。each($('。contel&gt; *&gt; span'),function(ndx,e){$(e).css('fontFamily','arial')});

因为有问题的孙子需要造型实际上是一个跨度元素。但这就是事情变得好奇的地方

该行代码转为

<span class="ui-slider-label ui-slider-label-a ui-btn-active ui-btn-corner-all" role="img" style="width: 0%; ">On</span> 

进入

开启

即。为元素赋予内联样式。

如果我定义了一个类

.georgia{font-family:georgia !important}

新代码

<span class="ui-slider-label ui-slider-label-a ui-btn-active ui-btn-corner-all georgia" role="img" style="width: 0%; ">On</span> 

即。 elment获得了一个标记在其上的新类。

与jQuery Mobile文档建议的相反,即使没有发布滑块('refresh'),也会按预期对元素进行整理。但是,为元素添加内联样式的css修改不会。

我不清楚为什么会发生这种情况。希望有人能够更好地理解CSS3和jQuery谁可以对此有所了解?