Javascript jstree从上下文菜单中删除默认元素
我对JsTree的contextmenu有一个问题,如何从contextmenu中删除默认元素,如Create、Delete、Rename?我想提供自己的元素,但默认元素仍在contextmenu中Javascript jstree从上下文菜单中删除默认元素,javascript,html,jstree,Javascript,Html,Jstree,我对JsTree的contextmenu有一个问题,如何从contextmenu中删除默认元素,如Create、Delete、Rename?我想提供自己的元素,但默认元素仍在contextmenu中 "contextmenu" : { "items" : { "IsimVer" : { "label" : "İsim Değiştir",
"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); }
}
}
几天前我就遇到过这个问题,但还没有决定这是一个bug还是一个特性。这可能与插件的加载顺序有关 对我有效的方法是从函数返回项目:
"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); }
}
};
}
}
经过一段时间的搜索,它似乎是,所以这是一个功能。不幸的是,该文档目前缺少关于这一点的详细信息。只需在items对象中将值设置为false。例如,要禁用编辑(剪切、复制、粘贴)菜单,请尝试以下操作:
contextmenu : {
items : {
"ccp" : false
}
}
将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
}
}
如果您想修改现有项的标签或删除一些项,下面这样一个简单的解决方案将起作用
"contextmenu": {
"items": function(node) {
var defaultItems = $.jstree.defaults.contextmenu.items();
defaultItems.create.label = "Ekle";
delete defaultItems.ccp;
return defaultItems;
}
}
这将“创建”项目标签设置为“Ekle”,并从默认项目中删除剪切副本粘贴。将
项目中的元素更改为新值有什么问题?父项是key
,而label
将是上下文菜单的标签ok相同,但我认为必须这样做:},create:false,rename:false,remove:false,ccp:items对象为false。谢谢你让我的生活更轻松。这是我见过的最好的答案。这是唯一一个使用jstree的3.x对我有效的答案,谢谢!谢谢