contextmenu - 调整 jstree 中的上下文菜单

标签 contextmenu jstree

我想使用上下文菜单插件执行以下操作: - 将“创建”重命名为“添加” - 删除“编辑”

如何做到这一点?

我不想创建自定义菜单,因为那样我只会获得一个节点,而不是可在创建、重命名和删除事件中使用的良好数据对象。

最佳答案

在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;
}

关于contextmenu - 调整 jstree 中的上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27565001/

相关文章:

windows - 在没有 MultipleInvokePromptMinimum 的情况下通过上下文菜单打开超过 15 个文件

javascript - 使用 JSTree 上下文菜单捕获新创建的节点

wpf - 与 ContextMenu 中的 HierarchicalDataTemplate 作斗争

jquery - Jstree拖放排序

jquery - 如何禁用 jsTree 节点重命名?

jquery - 强制模板到小屏幕(响应式)

c++ - Windows Shell 扩展不调用初始化

.net - 如何在 RichTextBox 中创建上下文菜单

jquery - JSTree 加载延迟加载不适用于我的资源 url 但适用于示例 url

javascript - Jstree - 在所有 Jstree 中每次只允许检查一个节点