我们假设要操作的树就是下图这个。
1 给wwwr节点新增子节点 666
操作及效果:选中节点wwwr,点击新增,新增后刷新树能看到新增上了子节点666,父节点wwwr仍然保持选中状态。
思路:选中wwwr,就把这个节点的id保存为全局全局的变量。等刷新树后(更新数据后)通过这个全局的id能定位到这个父节点,进而选中。
代码:
//1.保存节点为全局变量(点击父节点时的事件)
/*树的双击或确认*/
treeComfirm:function(){
var treeObj = $.fn.zTree.getZTreeObj(treeId);
var node = treeObj.getSelectedNodes()[0];
parentId=node.id;
parentCode=node.code;
},
//2.移除父节点的值并将父节点属性设置为父节点
var treeObj = $.fn.zTree.getZTreeObj(treeId);
treeObj.selectNode(selectNode);
treeObj.removeChildNodes(selectNode);
selectNode.isParent = true;
treeObj.updateNode(selectNode);
viewModel.events.expand();
treeObj.expandNode(selectNode, true, true, true);
2.选中父节点wwwr删除一个子节点666
操作及效果:选择wwwr,删除子节点666,删除后还是选择父节点,同时刷新父节点,看到666被移除。
代码:
1.也是要保存父节点。同上一步一样。
2.选中父节点后,移除子节点,在更新,并咱开这个父节点。
var treeObj = $.fn.zTree.getZTreeObj(treeId);
var selectNode = treeObj.getNodeByParam("id", parentId, null);
treeObj.selectNode(selectNode);
treeObj.removeChildNodes(selectNode);
selectNode.isParent = true;
treeObj.updateNode(selectNode);
viewModel.events.expand();
treeObj.expandNode(selectNode, true, true, true);
3.选择子节点666并删除
操作及效果:选中子节点666,删除后,选中改为父节点,并展开父节点
代码:
1.也是要保存父节点。同上一步一样。
2.由子节点找到父节点,然后移除父节点的这个选中的子节点。
var treeObj = $.fn.zTree.getZTreeObj(treeId);
var selectNode = treeObj.getNodeByParam("id", parentId, null);
/*说明删除的就是节点,要找到父节点,刷新父节点*/
var parentNode=selectNode.getParentNode();
parentNode.isParent = true;
treeObj.updateNode(parentNode);
treeObj.selectNode(parentNode);
treeObj.removeNode(selectNode);