伪元素的点击事件

运行环境: JQuery Js
其中页面显示的checkbox其实是一个伪元素。

<head>
    <title></title>
    <link rel="stylesheet" href="/static/js/layui/css/layui.css">
    <script src="/static/js/xxx/common.js"></script>
</head>
...
<th align="left">
       <div class="xselection">
              <input type="checkbox" id="check_all"/>
              <label for="check_all" id="xh">批次名</label>
       </div>
</th>

在这里插入图片描述
在这里插入图片描述

尝试一

$(document).ready(function(){
    var allcheck = document.getElementById("check_all").checked;
    $("#xh").on('click',function(){
        $(".check_label").each(function () {
            this.checked = allcheck
        });
    })
    if(allcheck){
        $("#multiDel").removeClass("disabled")
    }else {
        $("#multiDel").addClass("disabled")
    }
});

发现只会在页面加载的时候过一遍此方法,后面点击不会触发。

尝试二

$("#xh").click(function (){
    $(".check_label").each(function () {
        $(this).checked(true)
    });
    $("#multiDel").removeClass("disabled")
    return false;
})

发现只会在页面加载的时候过一遍此方法,后面点击不会触发。

尝试三

window.onload = function(){
    document.getElementById("xh").addEventListener('click',function(){
        var allcheck = !document.getElementById("check_all").checked;
        $(".check_label").each(function () {
            this.checked = allcheck
        });
        if(allcheck){
            $("#multiDel").removeClass("disabled")
        }else {
            $("#multiDel").addClass("disabled")
        }
    });
}

总结

尝试三成功,每次点击都会触发事件。
其他的尝试不成功有可能是js代码位置比应用位置靠前的原因,后面再补充吧~。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值