【发布时间】:2014-05-29 09:28:37
【问题描述】:
我正在尝试为 jsTree 配置自定义上下文菜单。我希望文件有两个选项 [重命名,删除],我希望文件夹有一个选项 [创建]
以下代码似乎正确,如下所述:Configuring jstree right-click contextmenu for different node types
但是这似乎不起作用,有两个问题。
- 两个上下文菜单都显示选项 [重命名、删除]
- 选择任一选项 导致错误:Uncaught TypeError: undefined is not a function
我做错了什么? 编辑:这是fiddle
$( document ).ready(function() {
function customMenu(node) {
// The default set of all items
var items = {
createItem: { // The "create" menu item
label: "Create",
action: function () {
this.create(node);
}
},
renameItem: { // The "rename" menu item
label: "Rename",
action: function () {
this.rename(node);
}
},
deleteItem: { // The "delete" menu item
label: "Delete",
action: function () {
this.remove(node);
}
}
};
if ($(node).hasClass("folder") || $(node).hasClass("jstree-closed") || $(node).hasClass("jstree-open")) {
delete items.deleteItem;
delete items.renameItem;
}
else{
delete items.createItem;
}
return items;
}
$('#tree').jstree({
'core': {
'data': [
{ "id": "ajson1", "parent": "#", "text": "Folder 1" },
{ "id": "ajson2", "parent": "ajson1", "text": "File 1" },
{ "id": "ajson3", "parent": "ajson1", "text": "File 2" }
]
},
"plugins": [ "contextmenu" ],
"contextmenu": {items: customMenu}
});
});
【问题讨论】:
标签: javascript jstree