我有一个有多个子节点的父节点。问题是如果我想打开一个我称之为$("#jstree").jstree("open_node", $('#node_27'));
的特定节点。问题是父节点未打开,因此$('#node_27')
返回一个空数组。
如果我有子ID,如果在父母打开之前没有将它们添加到DOM中,我怎么能打开它?
答案 0 :(得分:1)
显然,如果你想“深度打开”一个节点,你需要使用
$("#jstree1").jstree("open_node", ['rootId','childId','childChildId','yourNodeId']);
但是,有一个名为_open_to的方法已经自动完成,所以你可以这样做:
$("#jstree1").jstree("_open_to", 'yourNodeId'); //j1_5 in your case
它将打开它需要的任何内容,以便到达你想要的节点
答案 1 :(得分:1)
_open_to
方法是私有方法,不应该直接使用。虽然现在正在工作,但将来可能会发生变化,例如当jsTree作者决定改变他的图书馆的内部机制时。
要将父母打开到节点,您只需使用
即可$('#jstree1').jstree('select_node', 'node_27' );
作为奖励,您将获得目标节点。
答案 2 :(得分:0)
如果使用ajax填充树,则会延迟加载子节点。您必须首先使用“ load_node”加载父节点,然后使用“ select_node”作为子节点。
$('#jstree').on('refresh.jstree', function () {
$('#jstree').jstree(true).load_node('parent-id', function () {
$('#jstree').jstree().deselect_all();
$('#jstree').jstree('select_node', 'child-id');
});
});
$('#jstree').jstree(true).refresh(false, false);