layuitree组件选中⽗级时不选中所有⼦级layui版本 2.5.5
layui tree 动态赋值勾选的时候发现 勾选⽗级 所有⼦级默认都是勾选状态 与需求不合
解决:
修改如下:
断点执⾏ 发现勾选节点的操作是在tree.js内处理的
layui下载在tree.js 92⾏处加⼊⼀个参数: checkChild: true ⽤于动态控制 不影响原有功能
//默认配置
fig = {
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;
});
}
}
}
使⽤⽅法:
elem: '#testTree'
, checkChild: false
, data: data
在引⼊模块时传⼊上⽅的⾃定义参数 checkChild : false
不传此参数 为原有实现 传⼊后勾选⽗节点 ⼦节点不会选中
如果本地下载的layui js代码可能是压缩后的编码,需要从git上下载源码然后修改
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论