如何在Javascript Fancytree上计算儿童节点?

时间:2016-01-16 06:23:54

标签: javascript fancytree

我使用Fancytree和Drag&创建了一个类别树。删除功能,如

enter image description here

现在,我想为子节点设置限制。如果父节点已经有3个子节点,那么他无法创建新的子节点,例如

分类

父类别

  • 允许的子类别

    • 允许儿童类别

      • 不允许移动儿童类别
像这样,所以我为此创建了javascript。

dragDrop: function(node, data) {
if( node.getLevel() >= 3 ){
    return false;
}
console.log( node );
console.log( data );
var parentNodeKey = node.key;
var sourceNode = $(data.helper).data("ftSourceNode");
if( !data.otherNode ){
    var title = $(data.draggable.element).text() + " (" + (count)++ + ")";
    node.addNode({title: title}, data.hitMode);
    return;
}
data.otherNode.moveTo(node, data.hitMode);

}

当我移动任何一个类别时,这工作正常。但是当我移动" Moved Node" category,因为此类别已有2个子节点,并且该子节点已有2个子节点,如

enter image description here

我移动"移动节点"这是工作如何计算子节点或停止移动该节点。我想设置创建3个子节点的限制。我怎样才能做到这一点。以及如何计算移动类别的所有子节点。

由于

1 个答案:

答案 0 :(得分:2)

可以使用node.countChildren计算子节点,但是根据您的描述,我想您想要计算子节点的最大

没有内置方法,但您可以使用node.visit()实现它。