如何打开选中的节点jstree

How to open checked nodes jstree

我必须在 jstree 上工作,以便它保存检查的节点,而且在加载时打开检查的节点及其父节点。这是我必须使用的代码:

initializeGeoLevelTree: function () {

        var GeoLevelTree = $('#geoLevelTree');

        GeoLevelTree.jstree({
            "core": {
                "multiple": false,
                "themes": {
                    "responsive": false
                },
                "check_callback": true,
                "data":
                    CreateAdministrator.TreeGeoLevelArray
            },
            "types": {
                "default": {
                    "icon": "fa fa-folder icon-warning icon-lg"
                },
                "file": {
                    "icon": "fa fa-file icon-warning icon-lg"
                },
                "disabled": {
                    "check_node": false,
                    "uncheck_node": false
                }
            },
            "state": { "key": "createAdministrator" },
            "checkbox": {
                "three_state": false,
                "whole_node": false,
                "tie_selection": false
            },
            "plugins": ["checkbox", "wholerow", "types", "themes", "state"]
        });

        GeoLevelTree.bind("loaded.jstree", function (e, data) {

            GeoLevelTree.bind("select_node.jstree", function (e, data) {
                $("#lblName").text(data.node.original.Name);
                $("#lblType").text(data.node.original.GeoLevelType);
                if (data.node.original.IdGeoLevelType == 4) {
                    $("#officeDetail").show();
                    $("#lblAddress").text("");
                    CreateAdministrator.getOfficelDetail(data.node.id);
                } else {
                    $("#officeDetail").hide();
                }
            });

            CreateAdministrator.SelectGeoLevelAdministratorSavedNode();
        });
        CreateAdministrator.hideLoadingPage();
    },


    SelectGeoLevelAdministratorSavedNode: function () {
        for (var i = 0, l = CreateAdministrator.GeoLevelAdministratorSavedArray.length; i < l; i++) {
            var option = CreateAdministrator.GeoLevelAdministratorSavedArray[i];
            $.jstree.reference("#geoLevelTree").check_node(option.IdGeoLevel);
            jQuery.jstree._reference("#geoLevelTree")._open_to(option.IdGeoLevel);
        }
    },

已检查的节点存储在外部数组中,处理该数组以查找哪些已检查。有没有办法将这些节点也设置为打开?使用 open_node 或 _open_to 方法似乎不起作用。提前致谢

_open_to 似乎可以解决问题。这是一个演示:
http://jsfiddle.net/DGAF4/1267/

可能问题在于您传递给两个函数的 ID 的格式 - 请注意 ID 是一个字符串并且没有 # 前缀。

此致, 伊万