jstree open_node不在子节点上工作

时间:2016-03-08 21:07:16

标签: javascript jquery jstree

当我的复选框jstree加载完毕后,我希望预先打开最后打开的节点( select_node)。 open_node函数似乎只适用于最顶层的父级节点。我甚至尝试迭代节点并调用open_node,但它仍然不起作用。我有以下内容:

// Create instance for checkbox jstree.
$(function () {
    $('#myTree').jstree({
        "core": {
            "themes": {
                'name': 'default',
                "variant": "small",
                "icons": false
            },
        },
        "checkbox": {
            "keep_selected_style": false,
            "three_state": false,
        },
        "plugins": ["checkbox"]
    });
});

$("#myTree").bind('ready.jstree', function (event, data) {
    var $tree = $(this);
    $($tree.jstree().get_json($tree, {
        "flat": true
    })).each(function (index, value) {
        // lastOpenedNode.value contains the id of the last opened node
        if ( nodeWasLastOpened(this.id) == true)
            // ONLY OPENS TOP MOST PARENT NODES
            $("#myTree").jstree().open_node(this.id);
    })
});

请帮忙。

1 个答案:

答案 0 :(得分:1)

您可以使用私有方法_open_to,将所有节点打开到您想要显示的节点。请检查以下代码并演示 - Fiddle

 $("#myTree").jstree()._open_to( lastOpenedNode.value );

if ( nodeWasLastOpened(this.id) )
     $("#myTree").jstree()._open_to( this.id );
})