2014-12-19 5 views
2

Я хотел бы сделать следующее с Контекстным плагиным: - Переименовать «Создать», как «Добавить» - Удалить «Редактировать»Tweaking ContextMenu в jstree

Как это сделать один?

Я НЕ хочу создавать пользовательское меню, потому что тогда я получаю только узел, а не хороший объект данных, который можно использовать в событиях Create, Rename и Delete.

ответ

2

Нашел ответ в коде самого jstree: добавили этот код jstree:

"contextmenu": { 
     items: customContextMenu 
    } 

И это для пунктов контекстного меню:

function customContextMenu() { 

    'use strict'; 

    var items = { 
      "create" : { 
       "separator_before": false, 
       "separator_after": true, 
       "_disabled": false, //(this.check("create_node", data.reference, {}, "last")), 
       "label": "Add", 
       "action": function (data) { 
        var inst = $.jstree.reference(data.reference), 
         obj = inst.get_node(data.reference); 
        inst.create_node(obj, {}, "last", function (new_node) { 
         setTimeout(function() { inst.edit(new_node); }, 0); 
        }); 
       } 
      }, 
      "rename" : { 
       "separator_before": false, 
       "separator_after": false, 
       "_disabled": false, //(this.check("rename_node", data.reference, this.get_parent(data.reference), "")), 
       "label": "Rename", 
       "action": function (data) { 
        var inst = $.jstree.reference(data.reference), 
         obj = inst.get_node(data.reference); 
        inst.edit(obj); 
       } 
      }, 
      "remove" : { 
       "separator_before": false, 
       "icon": false, 
       "separator_after": false, 
       "_disabled": false, //(this.check("delete_node", data.reference, this.get_parent(data.reference), "")), 
       "label": "Withdraw", 
       "action": function (data) { 
        var inst = $.jstree.reference(data.reference), 
         obj = inst.get_node(data.reference); 
        if (inst.is_selected(obj)) { 
         inst.delete_node(inst.get_selected()); 
        } else { 
         inst.delete_node(obj); 
        } 
       } 
      } 
     }; 

    return items; 
} 
Смежные вопросы