Browse Source

idTree: preSibling Bug

MaiXinRong 8 years ago
parent
commit
1eb6a7226f
1 changed files with 10 additions and 0 deletions
  1. 10 0
      public/web/id_tree.js

+ 10 - 0
public/web/id_tree.js

@@ -73,6 +73,8 @@ var idTree = {
                 var next = (pre && iIndex + count - 1 < children.length) ? children[iIndex + count] : null;
                 if (pre) {
                     pre.setNextSibling(next);
+                } else if (next) {
+                    next.preSibling = null;
                 }
                 if (arguments.length === 4) {
                     children.splice(iIndex, count);
@@ -94,6 +96,8 @@ var idTree = {
                 }
                 if (pre) {
                     pre.setNextSibling(nodes[0]);
+                } else {
+                    nodes[0].preSibling = null;
                 }
                 nodes[nodes.length - 1].setNextSibling(next);
                 for (i = 0; i < nodes.length; i++) {
@@ -331,6 +335,8 @@ var idTree = {
             if (this.canUpMove()) {
                 if (orgPre.preSibling) {
                     orgPre.preSibling.setNextSibling(this);
+                } else {
+                    this.preSibling = null;
                 }
                 orgPre.setNextSibling(this.nextSibling);
                 this.setNextSibling(orgPre);
@@ -362,6 +368,8 @@ var idTree = {
             if (this.canDownMove()) {
                 if (this.preSibling) {
                     this.preSibling.setNextSibling(orgNext);
+                } else if (orgNext) {
+                    orgNext.preSibling = null;
                 }
                 this.setNextSibling(orgNext.nextSibling);
                 orgNext.setNextSibling(this);
@@ -562,6 +570,8 @@ var idTree = {
                 //delete this.nodes[this.prefix + node.getID()];
                 if (node.preSibling) {
                     node.preSibling.setNextSibling(node.nextSibling);
+                } else if (node.nextSibling) {
+                    node.nextSibling.preSibling = null;
                 }
                 if (node.parent) {
                     node.parent.children.splice(node.siblingIndex(), 1);