在外部定义变量和方法
//定义变量 接收顶级节点的值 var topValue; // 获取顶级节点值的方法 function getParent(value) { var val = projectTree.GetParent(value); if (val == null) { topValue = value; return; } else { getParent(val.value); } }
在click方法中将不是当前一级节点的子节点全部取消选中
projectTree = new layuiXtree({ elem: 'projectTree' //(必填) 放置xtree的容器,样式参照 .xtree_contianer , form: form //(必填) layui 的 from , data: res.data //(必填) json数据 , isopen: false , click: function (data) { //节点选中状态改变事件监听 //获取被选中的节点 var oCks = projectTree.GetChecked(); //根据当前节点的值获取一级节点的值 即当前顶级父节点的值 getParent(data.value); var top = topValue; //循环所有节点,将父节点不为当前父节点的节点 设为false for (var i = 0; i < oCks.length; i++) { getParent(oCks[i].value);//获取每一个节点的父节点 var cruuTop = topValue; if (cruuTop != top) { //如果不等于当前父节点 就取消选中 $(oCks[i]).prop("checked", false); } } form.render('checkbox'); } });