layui xtree 实现一级节点单选 ,子节点复选

在外部定义变量和方法

//定义变量  接收顶级节点的值
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.GetAllCheckBox();

        //根据当前节点的值获取一级节点的值  即当前顶级父节点的值
        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');
    }
});

猜你喜欢

转载自www.cnblogs.com/wzw-1912/p/10489298.html