使用spearate菜单和jstree-grid时获取jstree的节点ID

时间:2011-06-28 13:02:14

标签: jquery events tree grid jstree

我的jstree使用jstree-grid,其中一列包含一个动作菜单(由单独的代码生成,我需要做的就是应用类“actionHandler”在运行时生成菜单)。这个动作菜单包含一些额外的div,ul和li,它们几乎淹没了HTML代码中的 click事件

我想要完成的是:

当单击admin_new(表示“新节点”)选项时,我希望能够检索单击生成的菜单的节点的ID,以便将此节点作为当前节点的子节点附加

这是我目前的代码:

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特定事件(提供对数据对象的访问,这可能有可能解决问题)。

所以,问题基本上是:如何在不直接操作树的情况下检索相关节点信息?

任何帮助都会非常赞赏! (抱歉,文字墙:p)

1 个答案:

答案 0 :(得分:1)

已发布解决方案:请参阅我的评论。