我的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)
答案 0 :(得分:1)
已发布解决方案:请参阅我的评论。