jsTree: как выбрать узел после обновления - PullRequest
3 голосов
/ 13 июня 2011

У меня есть jQuery jsTree, заполняемый с сервера с помощью вызова ajax.Когда я добавляю новый узел, я делаю ajax-вызов, а затем вызываю, чтобы обновить дерево с tree.jstree("refresh").После обновления я хочу выбрать только что добавленный узел.К сожалению, кажется, что нет обратного вызова, который можно передать этой команде.Есть ли какой-нибудь чистый способ сделать это?

Ответы [ 2 ]

3 голосов
/ 03 апреля 2013

о, так долго с этого поста ... и до сих пор не могу найти ответ в интернете. Итак, через несколько часов ... нет, нет, не это, придумали солютин

var jsTreeId = '#jstree'; // or whatever name the jstree has
var jsTreeSelectedItemId = 5; // just an example
var selectedNode = $('#node_'+jsTreeSelectedItemId);
var parentNode = $.jstree._reference(jsTreeId)._get_parent(selectedNode);

// теперь допустим, что вы добавляете новый узел со стороны сервера, вы получаете новый идентификатор созданного узла с помощью вызова ajax, а затем вы хотите обновить дерево, чтобы отобразить его, а также выбрать его

var newSelectId = 9; // or from ajax call
// call the refresh function, which is asnyc
$.jstree._reference(jsTreeId).refresh(parentNode); 
 // set the magic "to_select" variable with an array of node ids to be selected
// note: this must be set after refresh is called, otherwise won't work
$.jstree._reference(jsTreeId).data.ui.to_select = ['#node_'+newSelectId];
1 голос
/ 24 января 2014
$('#tree').jstree("select_node", '#1', true);
//other node are deselected if pass last argument as true.

$('#tree').jstree("select_node", '#1', false);
//other node are selected and new one also selected.
...