我正在尝试在jstree中的文件夹上实现复制/粘贴功能。 问题是,在粘贴事件中,当我访问父ID时,它给出了该文件夹的旧父节点的id。 我需要粘贴文件夹的节点的新parent_id。 当我实现剪切事件后跟一个粘贴事件时,我可以通过在粘贴事件中检索它来获取新的parent_id,但不幸的是我无法获得相同的复制/粘贴。 我怎样才能获得新的parent_id? 请告诉我。谢谢。我感谢您的帮助! 代码中的日志语句如下:
.on('copy_node.jstree', function (e, data) {
console.log(" copy event ");
console.log(" type : "+data.node.type);
console.log(" id : "+data.node.id);
console.log(" text : "+data.node.text);
console.log(" new parent id : "+data.node.parent)
}).on('paste.jstree', function (e, data) {
console.log(" paste event ");
console.log(" parent id : "+data.node[0].parent);
console.log(" parents id : "+data.node[0].parents);
console.log(" tree node id : "+data.node[0].id);
console.log(" type : "+data.node[0].type);
})
The output seen is as follows:
copy event
type : default
id : j1_5
text : New node
new parent id : j1_2
paste event
parent id : j1_1
parents id : j1_1,#
tree node id : j1_4
type : default
请注意:我在复制活动中收到新的parent_id,即' j1_2'但我无法在粘贴事件中得到它。我想要这个新的parent_id以便在db中持久化。粘贴事件将parent_id显示为' j1_1'这是复制节点的旧parent_id。
答案 0 :(得分:0)
在paste
事件中,您可以在此处找到旧父级的ID:data.node[0].original.parent
(我假设您粘贴了一个节点,因此node[0]
)。
检查小提琴:JS Fiddle
答案 1 :(得分:0)
data.parent给了我新的父节点id。