Загрузите jsTree и нажмите - PullRequest
       3

Загрузите jsTree и нажмите

1 голос
/ 14 ноября 2011

У меня есть два вопроса относительно jsTree:

  1. Я создаю jsTree, используя JSON со struts2.В первый раз дерево отображается правильно.Но по нажатию кнопки я хочу перезагрузить это дерево с разными данными в один и тот же div.При нажатии кнопки я даю то же имя действия, которое было дано в первый раз для создания jstree.

  2. Если я нажимаю на какой-либо узел дерева, тогда я хочу идентификаторэтот узел, и если у этого узла есть какой-либо родительский элемент, то также необходимо, чтобы идентификатор родительского узла этого узла снова имел родительский узел, а затем идентификатор этого родительского узла

Пример

    Parent 1
       |__Parent 2
            |__Child 1

Я нажимаю на Ребенка 1, затем мне нужен идентификатор Ребенка 1, Родителя 2, Родителя 1 и т. Д.

Ответы [ 2 ]

3 голосов
/ 14 ноября 2011

Я не уверен, что вы действительно просмотрели документацию, но вот некоторые вещи, которые могут вам помочь:

для вашего первого вопроса, вы можете использовать откат: http://luban.danse.us/jazzclub/javascripts/jquery/jsTree/reference/_examples/5_others.html Обновить можновариант также: http://luban.danse.us/jazzclub/javascripts/jquery/jsTree/reference/_examples/2_operations.html

Для второго вопроса вы можете использовать обратные вызовы: http://luban.danse.us/jazzclub/javascripts/jquery/jsTree/reference/_examples/3_callbacks.html

._get_parent вам тоже поможет:

._get_parent (node)

Получает элемент LI, представляющий родителя переданного узла.Возвращает false при ошибке.смешанный узел

Это может быть узел DOM, узел jQuery или селектор, указывающий на элемент в дереве, родительский элемент которого мы хотим.

Подробную информацию см. в полной документации: http://www.jstree.com/documentation/core

1 голос
/ 14 ноября 2011

Если вы хотите получить полный путь к вашему узлу, вы можете использовать get_path

// The true means it will return the ID's of the parent, therefore ALL NODES need an ID
var parents = $("#your_jstree").jstree("get_path",$("#the_node"),true); 
$.each(parents, function(k, v){
    // Log down the ID's
    console.log(v);
});

Полный пример

var ids = $(this).closest(".jstree").jstree("get_path", $(this), true);
var path = "";
$.each(ids, function (k, v) {
    if (k == 0) return;

    if (path != "")
        path += "/";

    path += clone.html();
});

Вернет / parent 1 / parent 2 / Child 1

...