jstree从上下文菜单中删除默认元素

时间:2011-12-13 15:14:11

标签: javascript html jstree

我对JsTree的contextmenu有问题,如何从上下文菜单中删除默认元素,如Create,Delete,Rename?我想提供我自己的元素,但默认元素仍然在contextmenu。

    "contextmenu" : {
                    "items" : {
                        "IsimVer" : {
                            "label" : "İsim Değiştir",
                            "action" : function (obj) { this.rename(obj); }
                        },
                        "Ekle" : {
                            "label" : "Ekle",
                            "action" : function (obj) { this.create(obj); }
                        },
                        "Sil" : {
                            "label" : "Sil",
                            "action" : function (obj) { this.remove(obj); }
                        }
}

4 个答案:

答案 0 :(得分:15)

我几天前遇到过这个问题,但还没有确定这是一个错误还是一个功能。它可能与插件的加载顺序有关。

对我有用的是从函数返回项目:

"contextmenu" : {
    "items" : function ($node) {
        return {
            "IsimVer" : {
                "label" : "İsim Değiştir",
                "action" : function (obj) { this.rename(obj); }
            },
            "Ekle" : {
                "label" : "Ekle",
                "action" : function (obj) { this.create(obj); }
            },
            "Sil" : {
                "label" : "Sil",
                "action" : function (obj) { this.remove(obj); }
            }
        };
    }
}

经过一些搜索似乎是default behaviour is for your menu items to extend the defaults,所以这是一个功能。不幸的是,文档目前缺乏关于这一点的细节。

答案 1 :(得分:13)

如果您想修改现有项目的标签或删除一些项目,可以使用下面的简单解决方案

"contextmenu": {
   "items": function(node) {
           var defaultItems = $.jstree.defaults.contextmenu.items();
           defaultItems.create.label = "Ekle";
           delete defaultItems.ccp;
           return defaultItems;
        }
    }

这将设置"创建"项目标签为" Ekle"并从默认项目中删除剪切复制粘贴。

答案 2 :(得分:6)

只需在items对象中将value设置为false即可。例如,要禁用编辑(剪切,复制,粘贴)菜单,请尝试以下操作:

contextmenu : {
    items : {
        "ccp" : false
    }
}

答案 3 :(得分:3)


ccp 创建重命名删除设置为 false ,如下所示:

plugins : ["themes","json_data","ui","crrm", "hotkeys", "types", "contextmenu"],
contextmenu : {
    items : {
        "IsimVer" : {
            "label" : "IsimVer",
            "action" : function (obj) { alert("IsimVer"); }
        },
        "Ekle" : {
            "label" : "Ekle",
            "action" : function (obj) { alert("Ekle"); }
        },
        "Sil" : {
            "label" : "Sil",
            "action" : function (obj) { alert("tiga"); }
        },
        "ccp" : false,
        "create" : false,
        "rename" : false,
        "remove" : false
    }
}