簡體   English   中英

當父節點展開之前子節點不存在時,如何在JsTree中打開子節點?

[英]How to open child node in JsTree when child nodes do not exist until parent is expanded?

我有一個帶有多個子節點的父節點。 問題是如果我想打開一個特定的節點,我稱之為$("#jstree").jstree("open_node", $('#node_27')); 問題是父節點未打開,因此$('#node_27')返回一個空數組。

如果我有孩子ID,在打開父ID之前將其添加到DOM中時,如何打開它?

顯然,如果您想“深度開放”節點,則需要使用

$("#jstree1").jstree("open_node", ['rootId','childId','childChildId','yourNodeId']);

但是,有一種名為_open_to的方法已經可以自動執行此操作,因此您可以執行以下操作:

$("#jstree1").jstree("_open_to", 'yourNodeId'); //j1_5 in your case

它將打開所需的一切以到達您想要的節點

_open_to方法是私有方法,不應直接使用。 盡管現在可以工作,但是將來可能會改變,例如jsTree作者決定更改其庫的內部機制時。

要打開父級到節點,您可以簡單地使用

$('#jstree1').jstree('select_node', 'node_27' );

作為獎勵,您將選擇目標節點。

如果使用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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM