菜单修改时添加上级节点与当前节点冲突问题

此处上级菜单如果修改为当前菜单或当前节点的父节点将会出错

系统管理本就是最高节点了
产生的问题
在这里插入图片描述

//zTree确定按钮事件处理函数
  function doSetSelectNode(){
	  //1.获取选中的节点对象
	  var nodes=zTree.getSelectedNodes();
	  if(nodes.length==1){
	      //  选择节点   
       var selectedNode=nodes[0];
       console.log("selectNode",selectedNode);
       //  当前节点 获取
       var rowData=$("#mainContentId").data("rowData");
       if(rowData){//修改时做如下处理
      //判定当前选中的上级菜单节点是否为当前要修改节点的子节点.
                          // 当前节点   选择节点      
    	  var flag=isChild(rowData.id,selectedNode);
    	  if(flag){
    		  alert("不能选择当前节点以及对应子节点");
    		  return;
    	  }
       }
	  //2.将对象中内容,填充到表单
	   $("#parentId").data("parentId",selectedNode.id);
	   $("#parentId").val(selectedNode.name);
      }
	  //3.隐藏树对象
	  doHideTree();
  }
  

当前节点等于选择节点返回true 选择节点无父节点,表示是最高级别的节点来修改上级节点可以
返回false 若这个选择节点经过递归的父节点等于当前节点 返回true

//判定当前选中节点是否是当前节点的子节点
                    //当前节点  选择节点
  function isChild(currentNodeId,selectNode){
      // 选择节点 =/=    当前节点 
	 if(selectNode.id==currentNodeId)return true;
	 //  选择节点的父节点
	 //  false  null
	 var node=selectNode.getParentNode();
	 // true  
	 if(!node)return false;
	 return isChild(currentNodeId,node);
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值