FancyTree>将父项扩展为活动子节点

时间:2015-10-30 14:07:06

标签: fancytree

我有一个转换为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()插件来执行我想要的操作?

提前致谢。

1 个答案:

答案 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();
        }           
    }

这会将所有父节点扩展为活动子节点。