Jquery-mobile可以在水平分组上显示多组单选按钮,实际选择框被抑制,选择由背景文本颜色指示,方法是添加属性'data-type =“horizontal”'。
它还可以显示一个垂直集,通过设置'data-type =“vertical”'来保留框并且不设置背景颜色。
有没有办法改变垂直样式以匹配水平样式?也就是说,抑制框并使用背景文本颜色进行指示选择。
仅供参考,我们使用的是jquery-mobile 1.3.2。
答案 0 :(得分:1)
此功能未内置于jQM中,但您可以使用某些CSS和脚本实现此功能。
给定标准垂直标记:
<fieldset data-role="controlgroup" data-mini="true" class="vertBackground">
<legend>Vertical, mini sized:</legend>
<input type="radio" name="radio-choice-v-6" id="radio-choice-v-6a" value="on" checked="checked" />
<label for="radio-choice-v-6a">One</label>
<input type="radio" name="radio-choice-v-6" id="radio-choice-v-6b" value="off" />
<label for="radio-choice-v-6b">Two</label>
<input type="radio" name="radio-choice-v-6" id="radio-choice-v-6c" value="other" />
<label for="radio-choice-v-6c">Three</label>
</fieldset>
我为控制组提供了一个vertBackground
类,以使jQuery和CSS选择器特定于该组。我应用一些CSS来隐藏复选标记并将文本移回按钮的左侧:
.vertBackground .ui-icon{
display: none;
}
.vertBackground .ui-btn-inner{
padding-left: 11px !important;
}
最后,我添加了一个脚本,用于检查单选按钮何时更改,并将类ui-btn-active添加到当前检查的标签中:
$(document).on("pageinit", "#page1", function(){
SetActive();
$(".vertBackground input[type='radio']").on("change", function(){
setTimeout(SetActive, 0);
});
});
function SetActive(){
$(".vertBackground .ui-radio-off").removeClass("ui-btn-active");
$(".vertBackground .ui-radio-on").addClass("ui-btn-active");
}
以下是 DEMO