js动态添加的label和radio,点击label无效问题

通常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)
        }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值