无法在粘贴事件中检索新的父ID,用于jstree中的复制/粘贴功能

时间:2015-12-03 23:12:50

标签: jstree jstree-dnd

我正在尝试在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。

2 个答案:

答案 0 :(得分:0)

paste事件中,您可以在此处找到旧父级的ID:data.node[0].original.parent(我假设您粘贴了一个节点,因此node[0])。

检查小提琴:JS Fiddle

答案 1 :(得分:0)

data.parent给了我新的父节点id。