code: function() {
                  function findAvailableParents(nodes, root) {
                      var availables = [], i;
                      availables.push(root);
                      root.getChildren().forEach(function(test) {
                          for (i = 0; i < nodes.length; i++) {
                              if (nodes[i] == test) return;
                          }
                          availables = availables.concat(findAvailableParents(nodes, test));
                      });
                      return availables;
                  }
                  this._dropTargets = findAvailableParents(this._dragSources, this._minder.getRoot());
                  this._dropTargetBoxes = this._dropTargets.map(function(source) {
                      return source.getLayoutBox();
                  });
              }
docs: 计算拖放目标可以释放的节点列表（释放意味着成为其子树），存在这条限制规则： - 不能拖放到拖放目标的子树上（允许拖放到自身，因为多选的情况下可以把其它节点加入）  1. 加入当前节点（初始为根节点）到允许列表 2. 对于当前节点的每一个子节点： (1) 如果是拖放目标的其中一个节点，忽略（整棵子树被剪枝） (2) 如果不是拖放目标之一，以当前子节点为当前节点，回到 1 计算 3. 返回允许列表