我正在研究jstree的contextmenu,并且在右键菜单中显然需要一个克隆功能,它实际上是模拟复制,粘贴和重命名,这样一旦用户右键单击一个项目然后点击克隆,一个节点被复制(复制并粘贴在树中,并重命名为高亮显示,以便用户可以在那里重命名。
我在下面尝试了自定义克隆菜单项的代码,但它不起作用
cloneItem:{//“克隆”菜单项
标签:“克隆”,
行动:功能(obj)
{
this.copy(OBJ);
this.paste(OBJ);
}
}
非常感谢任何帮助。
答案 0 :(得分:1)
经过研究,我弄清楚了如何实现这个克隆,关键是要做粘贴在复制节点的父节点上。这是代码。
cloneItem: {
label: "Clone",
action: function (obj)
{
var currentId = this._get_node(obj).attr("id");
var parentId = this._get_node(obj)[0].firstChild.parentElement.parentNode.parentElement.id;
$("#TreeDiv").jstree("copy");
$("#TreeDiv").jstree("select_node","#"+parentId);
$("#TreeDiv").jstree("paste");
$("#TreeDiv").jstree("deselect_node","#"+parentId)
$("#TreeDiv").jstree("deselect_node", "#"+currentId)
$("#TreeDiv").jstree("select_node","#copy_"+currentId);
$("#TreeDiv").jstree("rename");
}
},
执行此操作的步骤是
我希望它能帮助那些需要在jstree中克隆的人。