jsTree组件背景菜单?

时间:2015-07-24 14:00:37

标签: jstree

在jsTree组件中有一个ContextMenu插件。

但只有当用户点击特定节点时才可用。

我需要通过单击组件的背景来添加上下文菜单(例如,添加根节点)。

是否可以为背景附加上下文菜单插件?

1 个答案:

答案 0 :(得分:0)

是的,你可以,但是你需要定义你需要的所有操作,因为默认值与节点有关,所以它们不起作用(重命名,删除等)。

单击树容器时将显示一个菜单,并显示创建根节点的选项:

$('#tree').on('contextmenu.jstree', function (e) {  
    e.preventDefault();
    if($(e.target).is('#tree')) {
        $(document).one("context_show.vakata.jstree", $.proxy(function (e, data) {
            var cls = 'jstree-contextmenu jstree-default-contextmenu';
            $(data.element).addClass(cls);
        }, this));
        $.vakata.context.show($(this), { 'x' : e.pageX, 'y' : e.pageY }, {
            "create" : {
                "separator_before"  : false,
                "separator_after"   : false,
                "_disabled"         : false,
                "label"             : "Create",
                "action"            : function (data) {
                    var inst = $.jstree.reference(e.target);
                    inst.create_node(null, {}, "last", function (new_node) {
                        setTimeout(function () { inst.edit(new_node); },0);
                    });
                }
            }
        });
    }
});