在 fancyTree 中添加子项时将节点图标更改为 "folder"

Changing node icon to "folder" when adding child in fancyTree

在我看来,在添加子节点时,fancyTree 中的标准行为不是将父节点更改为具有文件夹图标。

例如,参见 http://wwwendt.de/tech/fancytree/demo/index.html#sample-multi-ext.html 并尝试添加子节点。

如何在添加子项时将父项的图标动态更改为 "folder"?

我以为我可以将renderTitle()应用到父节点,但这并没有做任何事情。

这个问题 很相似,但是 (a) 我无法让它工作,并且 (b) 我想要一个不需要创建新图标的解决方案。

jquery.fancytree.edit.js 我添加了以下行

newNode.parent.addClass("fancytree-ico-ef");

代码片段如下:

newNode.makeVisible(/*{noAnimation: true}*/).done(function(){
        $(newNode[tree.statusClassPropName]).addClass("fancytree-edit-new");
        self.tree.ext.edit.relatedNode = self;
newNode.parent.addClass("fancytree-ico-ef");
        newNode.editStart();
    });

文件夹可能为空,因此此状态由 node.folder = true 定义(而不是由 children 是否存在这一事实定义)。 所以你可以设置 node.folder 并调用 node.render()。 请注意,设置额外的 class 可能会产生相同的效果,但在更新树时可能会丢失。