jsTree and Context Menu: modify items
Resolved:
"contextmenu":{ "items": function($node) { var tree = $("#tree").jstree(true); return { "Create": { "separator_before": false, "separator_after": false, "label": "Create", "action": function (obj) { $node = tree.create_node($node); tree.edit($node); } }, "Rename": { "separator_before": false, "separator_after": false, "label": "Rename", "action": function (obj) { tree.edit($node); } }, "Remove": { "separator_before": false, "separator_after": false, "label": "Remove", "action": function (obj) { tree.delete_node($node); } } }; }}
for jstree v3.+ (i test 3.2.1) this example work
"contextmenu":{ "items": function () { return { "Create": { "label": "Create", "action": function (data) { var ref = $.jstree.reference(data.reference); sel = ref.get_selected(); if(!sel.length) { return false; } sel = sel[0]; sel = ref.create_node(sel, {"type":"file"}); if(sel) { ref.edit(sel); } } }, "Rename": { "label": "Rename", "action": function (data) { var inst = $.jstree.reference(data.reference); obj = inst.get_node(data.reference); inst.edit(obj); } }, "Delete": { "label": "Delete", "action": function (data) { var ref = $.jstree.reference(data.reference), sel = ref.get_selected(); if(!sel.length) { return false; } ref.delete_node(sel); } } }; } },
Updated code for last version
"contextmenu":{ "items": function($node) { var tree = $("#tree").jstree(true); return { "Create": { "separator_before": false, "separator_after": false, "label": "Create", "action": function (obj) { $node = tree.jstree('create_node', $node); tree.jstree('edit', $node); } }, "Rename": { "separator_before": false, "separator_after": false, "label": "Rename", "action": function (obj) { tree.jstree('edit', $node); } }, "Remove": { "separator_before": false, "separator_after": false, "label": "Remove", "action": function (obj) { tree.jstree('delete_node', $node); } } }; }}