【发布时间】:2018-09-27 14:53:55
【问题描述】:
我在一个表单中有一组无线电控件。每一个都包裹在一个<label> 元素中以进行样式设置。
当页面加载时,每个标签都有一个通过CSS设置的背景颜色。
我希望用户能够单击组中的任何单选按钮来切换其父级 <label> 背景颜色。
从用户体验的角度来看,我需要每个选中的控件都切换其父标签背景颜色。我在整个无线电控制组中都需要这个。
<form>
<label>
<input type="radio" name="question1">
</label>
<label>
<input type="radio" name="question1">
</label>
<label>
<input type="radio" name="question1">
</label>
<label>
<input type="radio" name="question2">
</label>
<label>
<input type="radio" name="question2">
</label>
<label>
<input type="radio" name="question2">
</label>
<label>
<input type="radio" name="question3">
</label>
<label>
<input type="radio" name="question3">
</label>
<label>
<input type="radio" name="question3">
</label>
我的方法;
我知道不能使用CSS 选择父元素,所以它使用 jQuery。
使用 jQuery,我可以将一些逻辑应用于 整个 单选按钮集,如下所示:
$(':radio').each( function (i, el) {
$(this).on('change', function(){
if($(this).is(':checked')){
$(this).parent().css('background', '#ba9bc9');
}
$(this).on('blur', function(){
$(this).parent().css('background', '#09afed');
});
});
});
这有效,但它仅适用于当前选定的元素。点击离开会失去焦点。我需要它来维持整个问题集的状态。所以问题 #1 - #3 都可能以彩色背景告终。
【问题讨论】:
-
当一个单选按钮被选中时,找到所有其他同名的单选按钮,并删除它们的样式。
-
所以您想在单击收音机时更改包装收音机的标签的颜色?
-
你的标签需要包装你的收音机吗?
-
恐怕标签需要包装收音机。
-
由于代码是使用 WP 插件生成的,因此我无法或几乎无法控制输出。
标签: javascript jquery