Не могу получить новый родительский идентификатор в событии вставки, для функции копирования / вставки в jstree

Я пытаюсь реализовать функцию копирования / вставки в моих папках в jstree. Проблема в том, что в событии вставки, когда я получаю доступ к родительскому идентификатору, он дает мне идентификатор старого родительского узла папки. Мне нужен новый 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 сохранялся в БД. Событие вставки показывает parent_id как 'j1_1', который является старым parent_id скопированного узла.

2 ответа

Решение

data.parent дает мне новый идентификатор родительского узла.

В paste событие вы можете найти идентификатор старого родителя здесь: data.node[0].original.parent (Я предполагаю, что вы вставляете один узел, следовательно, node[0]).

Проверьте скрипку: JS Fiddle

Другие вопросы по тегам