function targetNode() {
      var currentTree = this.currentTree;

      if (!currentTree) {
        throw 'no currentTree';
      } //


      var _this$offset = this.offset,
          x = _this$offset.x,
          y = _this$offset.y;
      var currentNode = currentTree.rootData;

      while (true) {
        var children = currentNode.children;

        if (!children) {
          break;
        }

        if (this.node.parent === currentNode) {
          // dragging node is in currentNode children, remove it first
          children = children.slice();
          children.splice(children.indexOf(this.node), 1);
        }

        if (children.length === 0) {
          break;
        }

        var t = hp.binarySearch(children, function (node) {
          var el = document.getElementById(node._id);
          var ty = hp.getOffset(el).y;
          var ty2 = ty + el.offsetHeight + currentTree.space;

          if (ty2 < y) {
            return -1;
          } else if (ty <= y) {
            return 0;
          } else {
            return 1;
          }
        }, null, null, true);

        if (t.hit) {
          currentNode = t.value;
        } else {
          if (t.bigger) {
            currentNode = children[t.index - 1];
          } else {
            currentNode = t.value;
          }
        }

        if (!currentNode) {
          currentNode = children[0];
          break;
        }

        if (!currentNode) {
          break;
        }

        var innerEl = document.getElementById(currentNode._id).querySelector('.tree-node-inner');
        var of = getOf4(innerEl, currentTree.space);

        if (of.y <= y && y <= of.y2) {
          break;
        }
      }

      return currentNode;
    }
function targetNode() {
      var currentTree = this.currentTree;

      if (!currentTree) {
        throw 'no currentTree';
      } 


      var _this$offset = this.offset,
          x = _this$offset.x,
          y = _this$offset.y;
      var currentNode = currentTree.rootData;

      while (true) {
        var children = currentNode.children;

        if (!children) {
          break;
        }

        if (this.node.parent === currentNode) {
          
          children = children.slice();
          children.splice(children.indexOf(this.node), 1);
        }

        if (children.length === 0) {
          break;
        }

        var t = hp.binarySearch(children, function (node) {
          var el = document.getElementById(node._id);
          var ty = hp.getOffset(el).y;
          var ty2 = ty + el.offsetHeight + currentTree.space;

          if (ty2 < y) {
            return -1;
          } else if (ty <= y) {
            return 0;
          } else {
            return 1;
          }
        }, null, null, true);

        if (t.hit) {
          currentNode = t.value;
        } else {
          if (t.bigger) {
            currentNode = children[t.index - 1];
          } else {
            currentNode = t.value;
          }
        }

        if (!currentNode) {
          currentNode = children[0];
          break;
        }

        if (!currentNode) {
          break;
        }

        var innerEl = document.getElementById(currentNode._id).querySelector('.tree-node-inner');
        var of = getOf4(innerEl, currentTree.space);

        if (of.y <= y && y <= of.y2) {
          break;
        }
      }

      return currentNode;
    }
function targetNode ( ) { var currentTree = this . currentTree ; if ( ! currentTree ) { throw 'no currentTree' ; } // var _this$offset = this . offset , x = _this$offset . x , y = _this$offset . y ; var currentNode = currentTree . rootData ; while ( true ) { var children = currentNode . children ; if ( ! children ) { break ; } if ( this . node . parent === currentNode ) { // dragging node is in currentNode children, remove it first children = children . slice ( ) ; children . splice ( children . indexOf ( this . node ) , 1 ) ; } if ( children . length === 0 ) { break ; } var t = hp . binarySearch ( children , function ( node ) { var el = document . getElementById ( node . _id ) ; var ty = hp . getOffset ( el ) . y ; var ty2 = ty + el . offsetHeight + currentTree . space ; if ( ty2 < y ) { return - 1 ; } else if ( ty <= y ) { return 0 ; } else { return 1 ; } } , null , null , true ) ; if ( t . hit ) { currentNode = t . value ; } else { if ( t . bigger ) { currentNode = children [ t . index - 1 ] ; } else { currentNode = t . value ; } } if ( ! currentNode ) { currentNode = children [ 0 ] ; break ; } if ( ! currentNode ) { break ; } var innerEl = document . getElementById ( currentNode . _id ) . querySelector ( '.tree-node-inner' ) ; var of = getOf4 ( innerEl , currentTree . space ) ; if ( of . y <= y && y <= of . y2 ) { break ; } } return currentNode ; }
most related node 最相关的另一个节点
most related node 最相关的另一个节点