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