layui tree组件 选中父级时 不选中所有子级

layui版本 2.5.5      

  layui tree   动态赋值勾选的时候发现 勾选父级 所有子级默认都是勾选状态 与需求不合

        解决:

            修改如下:

                断点执行 发现勾选节点的操作是在tree.js内处理的

                在tree.js 92行处加入一个参数:  checkChild: true  用于动态控制  不影响原有功能

    //默认配置
    Class.prototype.config = {
        data: []  //数据

        ,showCheckbox: false  //是否显示复选框
        ,showLine: true  //是否开启连接线
        ,accordion: false  //是否开启手风琴模式
        ,onlyIconControl: false  //是否仅允许节点左侧图标控制展开收缩
        ,isJump: false  //是否允许点击节点时弹出新窗口跳转
        ,edit: false  //是否开启节点的操作图标
        ,checkChild: true //选中父级时 是否选选择所有子级

        ,text: {
            defaultNodeName: '未命名' //节点默认名称
            ,none: '无数据'  //数据为空时的文本提示
        }
    };

 

        337行 原代码

//同步子节点选中状态
    if(typeof item.children === 'object' || elem.find('.'+ELEM_PACK)[0]){
      var childs = elem.find('.'+ ELEM_PACK).find('input[same="layuiTreeCheck"]');
      childs.each(function(){
        if(this.disabled) return; //不可点击则跳过
        this.checked = checked;
      });
    };

 

修改后:

if(typeof item.children === 'object' || elem.find('.'+ELEM_PACK)[0]) {
            //同步子节点选中状态
            if(options.checkChild){
                    var childs = elem.find('.'+ ELEM_PACK).find('input[same="layuiTreeCheck"]');
                    childs.each(function(){
                        if(this.disabled) return; //不可点击则跳过
                        this.checked = checked;
                    });
            }else{
                    if(!checked){
                        var childs = elem.find('.'+ ELEM_PACK).find('input[same="layuiTreeCheck"]');
                        childs.each(function(){
                            if(this.disabled) return; //不可点击则跳过
                            this.checked = checked;
                        });
                    }
            }
        }

 

 

使用方法: 

  

tree.render({
            elem: '#testTree'
            , checkChild: false
            , data: data

 在引入模块时传入上方的自定义参数 checkChild : false

  不传此参数 为原有实现 传入后勾选父节点 子节点不会选中

 

 

如果本地下载的layui js代码可能是压缩后的编码,需要从git上下载源码然后修改

 参考文章: https://blog.csdn.net/nndjay/article/details/107857191

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值