easyui树修改节点选中情况

本文介绍了一种在树形结构中实现节点及其子节点全选、取消全选及节点到根节点全选的方法。通过定义全局变量控制点击事件,并使用JavaScript函数实现不同场景下的节点选中逻辑。
全局变量
    //是否执行点击事件
var   isdoOnChecked=true;
//点击选中节点,设置该节点的所有子节点都选择
function setSonLeafAllChecked(node,currenttree){
    //是否执行点击事件
    isdoOnChecked=false;
    var childList =currenttree.tree('getChildren',node.target);
        for(var i= 0;i<childList.length;i++){
            currenttree.tree("check", childList[i].target);
        }
}
//点击该节点,设置选中节点到顶部节点的所有节点为选中状态
function setLeafToRootChecked(node,currenttree){
    //是否执行点击事件
    isdoOnChecked=false;
     var parent =currenttree.tree('getParent', node.target); //获取选中节点的父节点
     for (i = 0; i < 10; i++) { //可以视树的层级合理设置I
       if (parent != null) {
           currenttree.tree("check", parent.target);//设置父节点选择
           var currenNode=currenttree.tree('getParent', parent.target);
           parent = currenNode;
       }
     }
}

//点击取消该节点,该节点和所有子节点全部取消
function setSonLeafUnChecked(node,currenttree){
    isdoOnChecked=false;
    var childList = currenttree.tree('getChildren',node.target);
     for(var i= 0;i<childList.length;i++){
         currenttree.tree("uncheck", childList[i].target);
     }

}

function getExtraPrivilegeTree(id,roleID,type){
    //生成菜单树
    $('#'+id).tree({    
        url: '/privilege/getExtraPrivilegeTree.do',
        lines : true,
        queryParams:{
            "roleID":roleID,
            "privilegeType":type
        },
        checkbox:true,
        cascadeCheck:false,
        onLoadSuccess : function (node, data) {
        },
        onCheck:function(node, checked){
            var currenttree=$(this);
            if(isdoOnChecked){
                  if(checked){
                        //如果点击是勾选的情况,设置下一次不执行点击点击事件。
                        //点击选中,子节点全部选中,父节点也要选中
                      setSonLeafAllChecked(node,currenttree);
                      setLeafToRootChecked(node,currenttree);
                      //设置点击有效
                      isdoOnChecked=true;
                    }else{//如果点击是取消,取消当前节点的所有子节点
                        setSonLeafUnChecked(node,currenttree);
                        //设置点击有效
                          isdoOnChecked=true;
                    }
            }


        },
    });
}

转载于:https://www.cnblogs.com/feiZhou/p/9344033.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值