Как открыть узлы в jstree, используя массив идентификаторов?

Я использую плагин jstree javascript и загружаю данные асинхронно. Я пытаюсь реализовать поиск по данным этого дерева. У меня есть веб-служба, которая возвращает массив идентификаторов на основе параметра поиска. Дерево не загружается перед поиском. Когда пользователь нажимает на поиск, на основе возвращенных идентификаторов я пытаюсь загрузить/открыть узлы в дереве один за другим, соответствующие идентификатору.

for(var i = 0; i < ids.length; i++){
     $("#tree").jstree("open_node", document.getElementById(ids[i]));
}

Однако загружается только корневой узел. Может ли кто-нибудь предложить простую функцию для загрузки узлов по одному с использованием массива идентификаторов?

Заранее спасибо.


person Charan    schedule 10.12.2012    source источник


Ответы (1)


Если jsTree не загружен, вы можете использовать «state» => «open» для узла, который вы хотите открыть при загрузке при создании данных для jsTree. См. пример ниже: код скопирован с http://www.jstree.com/documentation/json_data.

{
    "data" : "node_title",
    // omit `attr` if not needed; the `attr` object gets passed to the jQuery `attr` function
    "attr" : { "id" : "node_identificator", "some-other-attribute" : "attribute_value" },
    // `state` and `children` are only used for NON-leaf nodes
    "state" : "closed", // or "open", defaults to "closed"
    "children" : [ /* an array of child nodes objects */ ]
}
person Radek    schedule 12.12.2012