Получение идентификатора узла для jstree при использовании отдельного меню и jstree-grid - PullRequest
1 голос
/ 28 июня 2011

В моем jstree используется jstree-grid, и один из столбцов содержит меню действий (которое генерируется отдельным кодом, и все, что мне нужно сделать, это применить класс "actionHandler" для генерации меню во время выполнения). Это меню действий состоит из нескольких дополнительных div, ul и li, которые в значительной степени заглушают событие click в HTML-коде.

Что я хочу сделать, это следующее:

Когда выбран вариант admin_new (представляющий «новый узел»), я хочу иметь возможность получить идентификатор узла, для которого было выбрано сгенерированное меню, чтобы добавить этот узел в качестве дочернего для текущего узла .

Это мой текущий код:

jQuery("#structureBuilderTable").jstree({
           json_data: {data: testData},
           themes: {
                theme : "apple",
                dots : false,
                icons : false
           },
           plugins: ["json_data", "crrm", "ui", "themes", "grid"],
           core: {initially_open: [1]},
           grid : {
                 columns: [
                    {width: 200, header: "Title"},
                    {value:"id", width: 50, header: "id"},
                    {value:"logicalTitle", width: 50, header:"logical title"},
                    {width: 100, header:"handlinger", cellClass:'actionHandler'},
                    {value:"resource", width: 200, header:"resource"}
                 ]
           }
        }).bind("loaded_grid.jstree", function()
          {
          generateActionMenu("span.actionHandler",{
            admin_new: function(e){
              var nodeID = $(e.target).parents(/* Need an unique property*/).data('id');
            },
            admin_delete: function(e){
                /* delete node*/
            }, 'admin_open');
            });

А это мой дурачок JSON:

var testData = [
            {
                data: "Seksjon1",
                attr: {id:"1", logicalTitle:"r2d2", resource:"videofile"},
                children: [
                    {
                        data: "Flersvar",
                        attr: {id:"2", logicalTitle:"c3p0", resource:"checkbox"}
                    },
                    {
                        data: "Flashtest",
                        attr: {id:"3", logicalTitle:"d2r2", resource:"flash"}
                    }
                ]
            }];

Основная проблема заключается в том, что, поскольку ни один узел не выбран, у меня нет доступа к каким-либо конкретным событиям jstree (предоставляя доступ к объекту данных, который мог бы потенциально решить проблему).

Итак, вопрос в основном: как я могу получить информацию о соответствующем узле без непосредственного манипулирования деревом?

Любая помощь будет очень высоко ценится! (Простите за стену текста: р)

1 Ответ

1 голос
/ 01 июля 2011

Решение опубликовано: см. Мой комментарий.

...