0
我只能顯示選定的節點和父母,並隱藏其餘節點。只顯示在jstree中檢查過的節點及其父母
當前文檔中沒有get_unchecked。我的json格式非常龐大,因此將其用於字符串和格式化並重新加載樹會效率低下。
有沒有辦法讓所有未經檢查的節點和隱藏它? 如果有我可以檢查當前選中的節點的所有父節點,然後隱藏所有未經檢查的節點,但我找不到任何方法來檢索所有未經檢查的節點。
我只能顯示選定的節點和父母,並隱藏其餘節點。只顯示在jstree中檢查過的節點及其父母
當前文檔中沒有get_unchecked。我的json格式非常龐大,因此將其用於字符串和格式化並重新加載樹會效率低下。
有沒有辦法讓所有未經檢查的節點和隱藏它? 如果有我可以檢查當前選中的節點的所有父節點,然後隱藏所有未經檢查的節點,但我找不到任何方法來檢索所有未經檢查的節點。
解決我所提出的問題。
$('#jstree_demo_div').on('loaded.jstree', function(e, data) {
console.log("loaded");
checked_ids = $('#jstree_demo_div').jstree('get_selected', true);
$("#jstree_demo_div").jstree('select_all');
$.each(checked_ids, function(index, value) {
$("#jstree_demo_div").jstree('deselect_node', value);
uiParentsShow(value);
});
checked_ids = $('#jstree_demo_div').jstree('get_selected', true);
$.each(checked_ids, function(index, value) {
$("#jstree_demo_div").jstree('hide_node', value);
});
});
function uiParentsShow(node) {
try {
var parent = $("#jstree_demo_div").jstree('get_parent', node);
$("#jstree_demo_div").jstree('deselect_node', parent);
if (parent != '#') {
uiParentsShow1(parent);
}
} catch (err) {
console.log('Error in uiGetParents' + err);
}
}
步驟:
你可以做到這一點:
檢查下面的代碼和演示 - codepen。
var $tree = $("#myTree").jstree(),
nodesSelected = $tree.get_selected(),
nodeIdsToStay = [];
nodesSelected.forEach(function(node) {
var path = $tree.get_path(node, false, true);
path.forEach(function(n) {
if (nodeIdsToStay.indexOf(n) === -1) {
nodeIdsToStay.push(n);
}
})
})
$('#myTree').find('li').each(function() {
if (nodeIdsToStay.indexOf(this.id) === -1) {
$(this).hide();
}
})
不適用於我的數據集。它真的很長,我怎麼發送你的數據集 –
什麼不工作? –
它顯示了一些兄弟節點。如果你想要的話,我可以把你的jsondata郵寄給你,而且我現在也必須在運行時隱藏複選框圖標。 –