通常radio原生标签这么丑的东西我们是不会直接扔到页面上的,所以就用到了label标签来美化原生的radio标签
碳素,发现js动态添加的时候点击label标签radio就死活不选中,于是乎,查了一下发现,还真就有这个BUG,
那就只能用js再加一层点击事件,简单倒是简单,不过这个坑能跳就跳过去呗
$(this).prev().click()
'<div class="radioContainer">' +
'<input type="radio" ' + checked + ' name="' + ui.dataIndx + '" class="radioDefault" value="' + option + '" id="' + ui.dataIndx + i + '">' +
'<label onclick=" $(this).prev().click();" class="radioDefaultlabel" for="' + ui.dataIndx + i + '"></label>' +
'<label for="' + ui.dataIndx + i + '">' + option + '</label>' +'</div>';
另外附加上radio的美化css样式,摘自别的地方的
.radioContainer {
position: relative;
line-height: 30px;
display: inline-block;
margin-left: 5px;
}
.radioDefault {
width: 20px;
height: 20px;
opacity: 0;
}
.radioDefaultlabel {
position: absolute;
left: 3px;
top: 8px;
width: 13px;
height: 13px;
border-radius: 50%;
border: 1px solid #999;
}
/*设置选中的input的样式*/
/* + 是兄弟选择器,获取选中后的label元素*/
.radioDefault:checked + .radioDefaultlabel {
background-color: #fe6d32;
border: 1px solid #fe6d32;
}
.radioDefault:checked + .radioDefaultlabel::after {
position: absolute;
content: "";
width: 4px;
height: 8px;
top: 1px;
left: 4px;
border: 2px solid #fff;
border-top: none;
border-left: none;
transform: rotate(45deg)
}