Установить атрибуты узла на узле в jstree

Когда я загружаю дерево, я загружаю его, используя следующий фрагмент:

{"data":"admin","state":"closed","metadata":{"id":"\/admin\/","type":"default"}

Когда я беру ссылку на конкретный выбранный узел, я использую:

jQuery.data(data.rslt.obj[0], "jstree").id;

Однако, когда я добавляю новый узел, я не знаю, как установить идентификатор нового узла. Я видел несколько примеров, которые говорят использовать следующее:

var newnode = data.rslt.obj;
newnode.attr("id", new_node_id);

Где new_node_id генерируется мной, но это, похоже, не работает. Кто-нибудь может помочь?


person jortiz81    schedule 24.06.2011    source источник


Ответы (2)


Я просто использую предоставленный метод из документации CRRM:

$("#treeContainer").jstree("create", parentNode, "position", {attr: {id: your_generated_id ...}, data: "nodeTitle"} ,null, true);

Работает как шарм для меня.

person nicohvi    schedule 04.07.2011
comment
Как получить ссылку на parentNode? - person jortiz81; 05.07.2011
comment
Если вы передаете null, это текущий выбранный узел, но я использую селектор jQuery или обработчик событий для ссылки на родителя. Например: $('ul > li#' +parentId), или присвоить каждому узлу определенный класс, а затем вернуться к заданному событию .closest('.structureNode'). - person nicohvi; 05.07.2011

Если вы используете данные json для заполнения своего дерева, вы должны указать их в строке json: см.

person mikewasmike    schedule 19.02.2015