我有一个转换为FancyTree的列表。 FancyTree已设置为activeVisible:true,这意味着包含活动节点的树将从活动节点扩展到最顶层父节点。但这不起作用,所以我想我错过了一些东西,但无法弄清楚这是什么。
init:
$("div[id^=msctree]").fancytree({
checkbox: true,
selectMode: 1,
activeVisible: true,
extensions: ['contextMenu'],
contextMenu: {
menu: {
'edit': { 'name': 'Edit', 'icon': 'edit' },
},
actions: function(node, action, options) {
if ( action == "edit" ) {
...someAction...
}
}
}
});
清单:
<div id="msctree">
<ul>
<li>
Topmost parent
<ul>
<li data-active="true" data-expanded="true">
Subnode
<ul>
<li>List with further dubs</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
具有数据活动的li =&#34; true&#34;和数据扩展=&#34;真&#34;是扩展但最顶层的父级不是我认为是错误的行为,因为我已将activeVisible设置为true。 这是为什么?如何配置fancetree()插件来执行我想要的操作?
提前致谢。
答案 0 :(得分:1)
FancyTree有一个内置的功能,但它似乎不起作用。所以这个漂亮的插件的开发者为此打开了一个问题。在问题解决之前,我可以使用我的解决方法。
init: function(event, data) {
var activeJumpNode = data.tree.getActiveNode();
if ( activeJumpNode ) {
var treeObj = $("div[id^=msctree]").fancytree("getTree");
var jumpToNode = treeObj.findFirst(function(node) {
return node === activeJumpNode;
});
jumpToNode.setActive();
jumpToNode.setFocus();
$(treeObj.$container).focus();
}
}
这会将所有父节点扩展为活动子节点。