在线等 ztree新添加节点后,二级目录打不开
ztree吧
全部回复
仅看楼主
level 1
千v阳 楼主
这是setting
var setting = {
data: {
simpleData: {
enable: true,
idKey: "id",
pIdKey: "pId",
rootPId: 0
}
},
view: {
selectedMulti : false,//不允许选择多个节点
showLine : false,//不显示连接线
dblClickExpand: false, //关闭双击功能
addHoverDom : addHoverDom,
removeHoverDom: removeHoverDom,
},
check: {
enable: false
},
async: {
enable: true,
url:"MenuAction",
autoParam:["id"],
},
callback: {
beforeExpand: beforeExpand,
onExpand: onExpand,
onClick: onClick,
onAsyncSuccess: asyncAll//强制后台异步加载所有节点 感觉问题出在这里
},
edit: {
enable: true
}
};
js
//后台自动异步加载所有节点
function asyncAll() {
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
asyncNodes(zTree.getNodes());
};
function asyncNodes(nodes) {
if (!nodes) return;
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
for (var i=0, l=nodes.length; i<l; i++) {
if (nodes[i].isParent && nodes[i].zAsync) {
asyncNodes(nodes[i].children);
} else {
zTree.reAsyncChildNodes(nodes[i], "refresh", true);
}
}
};
2016年09月01日 08点09分 1
level 1
千v阳 楼主
二级目录(或者说字子目录)本来能打开 添加新的二级目录后就打不开了
2016年09月01日 08点09分 2
level 1
千v阳 楼主
2016年09月01日 08点09分 3
level 1
千v阳 楼主
啊 是保持单一路径的问题 去掉就好了 但是不知道具体问题出在哪里
/*
* 保持展开单一路径
*/
var curExpandNode = null;
function beforeExpand(treeId, treeNode) {
var pNode = curExpandNode ? curExpandNode.getParentNode():null;
var treeNodeP = treeNode.parentTId ? treeNode.getParentNode():null;
for(var i=0, l=!treeNodeP ? 0:treeNodeP.children.length; i<l; i++ ) {
if (treeNode !== treeNodeP.children[i]) {
zTree.expandNode(treeNodeP.children[i], false);
}
}
while (pNode) {
if (pNode === treeNode) {
break;
}
pNode = pNode.getParentNode();
}
if (!pNode) {
singlePath(treeNode);
}
}
function singlePath(newNode) {
if (newNode === curExpandNode) return;
var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
rootNodes, tmpRoot, tmpTId, i, j, n;
if (!curExpandNode) {
tmpRoot = newNode;
while (tmpRoot) {
tmpTId = tmpRoot.tId;
tmpRoot = tmpRoot.getParentNode();
}
rootNodes = zTree.getNodes();
for (i=0, j=rootNodes.length; i<j; i++) {
n = rootNodes[i];
if (n.tId != tmpTId) {
zTree.expandNode(n, false);
}
}
} else if (curExpandNode && curExpandNode.open) {
if (newNode.parentTId === curExpandNode.parentTId) {
zTree.expandNode(curExpandNode, false);
} else {
var newParents = [];
while (newNode) {
newNode = newNode.getParentNode();
if (newNode === curExpandNode) {
newParents = null;
break;
} else if (newNode) {
newParents.push(newNode);
}
}
if (newParents!=null) {
var oldNode = curExpandNode;
var oldParents = [];
while (oldNode) {
oldNode = oldNode.getParentNode();
if (oldNode) {
oldParents.push(oldNode);
}
}
if (newParents.length>0) {
zTree.expandNode(oldParents[Math.abs(oldParents.length-newParents.length)-1], false);
} else {
zTree.expandNode(oldParents[oldParents.length-1], false);
}
}
}
}
curExpandNode = newNode;
}
function onExpand(event, treeId, treeNode) {
curExpandNode = treeNode;
}
2016年09月01日 08点09分 4
1