按钮点击时Fancytree激活节点

Pet*_*ter 3 javascript jquery fancytree

我在我的网站上有一个奇特的树解决方案,我希望有一个触发特定节点的按钮.

我可以通过点击按钮激活特定节点或在加载花式树后触发它吗?

我的花哨代码:

  $("#tree").fancytree({ //Fancy Tree
        checkbox: false,
        selectMode: 3,
        extensions: ["dnd"],
        source: {
            url: "@(Url.Action("GetCategoryForFancyTree", "LinksDocuments"))" + '?time=' + timestamp,
                success: function(data){

                    console.log(data);
                },
                cache: true
            }
     });
Run Code Online (Sandbox Code Playgroud)

我看到这个代码可能我可以使用,但我不知道节点的节点密钥,我怎么能检索密钥?

$("#tree").fancytree("getTree").getNodeByKey("id4.3.2").setActive();
Run Code Online (Sandbox Code Playgroud)

小智 6

.getNodeByKey只是期望节点元素的"id".例如,要从以下示例中获取"示例节点",只需为每个元素设置id:

<div id="tree">
    <ul>
        <li id="123">Sample Node</li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

并使用这样的东西来激活它:

$("#tree").fancytree("getTree").getNodeByKey("123").setActive();
Run Code Online (Sandbox Code Playgroud)

我建议将其添加到"init:function(){}",否则如果树仍在加载/构建,它可能不会激活.

也可以在"init:"中使用以下内容,也应该这样做.

data.tree.activateKey("123")
Run Code Online (Sandbox Code Playgroud)

最后,如果您还不知道,请获取密钥:

click: function (event, data) {
    var node = data.node;
    alert("ID: " + node.key);
}
Run Code Online (Sandbox Code Playgroud)

  • `$("#tree").fancytree("getTree").activateKey(false)` 用于重置激活节点 (2认同)