在 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 可能会产生相同的效果,但在更新树时可能会丢失。
在我看来,在添加子节点时,fancyTree 中的标准行为不是将父节点更改为具有文件夹图标。
例如,参见 http://wwwendt.de/tech/fancytree/demo/index.html#sample-multi-ext.html 并尝试添加子节点。
如何在添加子项时将父项的图标动态更改为 "folder"?
我以为我可以将renderTitle()
应用到父节点,但这并没有做任何事情。
这个问题
在 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 可能会产生相同的效果,但在更新树时可能会丢失。