dojo任意级树的节点转移

上次老大说两级树,现在说要搞成支持N级的,

整理了一下例子和思路,

树节点的移动需要删除它的相关节点,具体如下:

1.如果移动没有子节点的节点。那么他需要向上递归它的树结构。

2.如果移动上有父节点,下有子节点的节点的节点要向下和向上分别递归树结构

3.如果只有子节点没有父节点那么只需向下递归就行了。

期间还有一些小细节,比如:如果同级节点进行移动的时候那么只要找到父节点就可以进行插入操作,如果是插入的是一个节点已经存在需要补充的只是他的子节点那么只要找到他自己就可以进行插入子节点了。类似的可能还很多。我再程序作了一部分的处理,可能还有不足请大家指出来。

缺陷是:

1.store中有个allitem的数组可以看到他的长度很长,因为每次移动的节点都是重新申请的数组空间,这个数组移动之后是不连续的。不适用于数据量很大的数组;

2.deleteItem的操作并不是把数组进行重新整合,而只是把原来的位置置空。

3.如果把节点全部移空,点击空树为报空指针。这是dojo框架的问题。

 

你可能感兴趣的:(JavaScript,dojo)