Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果树不知道父节点,是否可以加载然后选择子节点?_Javascript_Jquery_Jstree - Fatal编程技术网

Javascript 如果树不知道父节点,是否可以加载然后选择子节点?

Javascript 如果树不知道父节点,是否可以加载然后选择子节点?,javascript,jquery,jstree,Javascript,Jquery,Jstree,我使用jsTree作为导航器,让用户选择显示在另一个窗格中的不同项目。到目前为止,除了用户从另一个窗格选择了一个尚未加载到树中的项目外,其他一切都正常工作 树当前正在从AJAX获取其所有数据 我尝试过使用open_node和load_node函数,但是如果没有加载父节点,它们就没有效果 我的问题:如果父节点对树未知,是否可以加载然后选择子节点?如果没有,是否有任何变通办法来达到类似的效果 编辑: 树初始值设定项: $('#jsTree-Location').jstree({ &q

我使用jsTree作为导航器,让用户选择显示在另一个窗格中的不同项目。到目前为止,除了用户从另一个窗格选择了一个尚未加载到树中的项目外,其他一切都正常工作

树当前正在从AJAX获取其所有数据

我尝试过使用open_node和load_node函数,但是如果没有加载父节点,它们就没有效果

我的问题:如果父节点对树未知,是否可以加载然后选择子节点?如果没有,是否有任何变通办法来达到类似的效果

编辑:

树初始值设定项:

    $('#jsTree-Location').jstree({
    "core": {
        "animation": 0,
        "check_callback": true,
        "themes": {
            "stripes": true,
            "icons": true
        },
        "data": {
            'url': '@Url.Action("LocationList", "Location")',
            'type': 'GET',
            'dataType': 'JSON',
            'contentType': 'application/json',
            'data': function (node) {
                return { sID: node.id, sType: node.type };
            }
        }
    },
    "json_data": {},
    "plugins": [
        "contextmenu", "dnd", "search",
        "state", "wholerow", "types"
    ],
    "state": { "key": "system" },
    "contextmenu": { items: customMenu },
    "types": {
        "default": {
            "icon": "glyphicon glyphicon-flash"
        },
        "location": {
            "icon": "fas fa-map-marker-alt"
        },
        "asset": {
            "icon": "fa fa-cube"
        },
        "link": {
            "icon": "fa fa-cube"
        },
        "system": {
            "icon": "fas fa-cogs"
        }
    }
}})
当用户“外部”选择节点时调用的函数

    function DisplayAsset(id) {
    ShowSpinner($("#window"), "Loading Asset...");

    //If Location Tree is active, activate the Asset in it.
    var sysTree = $('#jsTree-Location').jstree().get_selected()[0]
    if (typeof sysTree !== "undefined") {
        $("#jsTree-Location").jstree().open_node(['#asset-' + id, '#link-' + id], function (node, status) {
            if (status) {
                $("#jsTree-Location").jstree().activate_node(node)
            }
        })

    }

    //AJAX call to get Asset partial display
    $.ajax({
        url: '/Assets/_AssetEdit/',
        type: 'GET',
        data: {
            'id': id
        },
        success: function (html) {
            HideSpinner($("#window"));
            $("#window").html(html)
            BuildTable();
        }
    })
}

我可以澄清一下具体的期望结果和实际的不期望结果是什么。我现在读这个问题的方式是:这个jQuery插件可以遍历不存在的数据结构吗?这个问题的答案是否定的。你完全有可能想问一个不同的问题,请详细说明或澄清你是否可以这样做。如果状态{$jsTree Location.jsTree.activate_nodenode}在我看来,这段代码可能无法访问,我看不到任何一行状态可以传递到DisplayAsset函数的if语句中。祝你好运!我可以澄清一下具体的期望结果和实际的不期望结果是什么。我现在读这个问题的方式是:这个jQuery插件可以遍历不存在的数据结构吗?这个问题的答案是否定的。你完全有可能想问一个不同的问题,请详细说明或澄清你是否可以这样做。如果状态{$jsTree Location.jsTree.activate_nodenode}在我看来,这段代码可能无法访问,我看不到任何一行状态可以传递到DisplayAsset函数的if语句中。祝你好运!