
正文
ztree选父不选子选子不选父
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
var setting = {
data: {
simpleData: {
enable: true
}
}
,check: {
enable: true
, chkStyle: 'checkbox'
//,chkboxType:{ "Y": "", "N": "" }
}
,callback:{
onCheck:function(e,treeId, treeNode){
if(treeId == "treeDemo") {
var zTreeObj = $.fn.zTree.getZTreeObj(treeId);
optParOrSon(treeId, treeNode,zTreeObj);
}
}
}
};
//获取所有子节点
var getChildsByTreeNode = function(treeNode,childsArr){
var childsArr = childsArr || [];
if (treeNode.isParent) {//是父节点则获取所有子节点
var childs = treeNode.children;
for(var i in childs){
childsArr.push(childs[i]);
getChildsByTreeNode(childs[i],childsArr);
}
}
return childsArr;
}; //获取所有父节点
var getParsByTreeNode = function(treeNode,parsArr){
var parsArr = parsArr || [];
var parNode = treeNode.getParentNode();
if(parNode){
parsArr.push(parNode);
getParsByTreeNode(parNode,parsArr);
}
return parsArr;
}
/**
* 选父不选子,选子不选父
* */
var optParOrSon = function(treeId,treeNode,zTreeObj){
if(treeNode.checked){
//取消全部后代节点的选中
var childNodes = getChildsByTreeNode(treeNode);
for(var i in childNodes){
zTreeObj.checkNode(childNodes[i], false, false);
}
//同时全部祖先节点也不能被选中
if(treeNode.getParentNode()){
var parNodes = getParsByTreeNode(treeNode);
for(var i in parNodes){
zTreeObj.checkNode(parNodes[i], false, false);
}
}
}
};
//展开选中节点
var expandCheckedNode = function(){
//获取所有选中状态的节点
var checkedNodes = zTreeObj.getCheckedNodes(true);
for(var i in checkedNodes){
var checkedParAll = getParsAll(checkedNodes[i]);
for(var j in checkedParAll){
zTreeObj.expandNode(checkedParAll[j],true,false);
}
}
};







