Jstree always_copy не работает при копировании узлов между деревьями
Я действительно застрял в проблеме Jstree; У меня есть 2 дерева: дерево-источник и дерево-назначение. "Исходное" дерево - это плоское дерево, содержащее узлы, которые я хочу перетащить в "конечное" дерево, чтобы построить его. Но после перетаскивания мне нужно, чтобы эти узлы остались, чтобы я мог использовать их повторно. Теперь, если я нажму клавишу управления до и во время перетаскивания, она выполнит функцию копирования и покинет исходный узел. Но я не хочу, чтобы пользователь делал это; Я хотел бы, чтобы дерево всегда копировалось. Вот почему я использовал этот параметр, но он не работает на моем дереве. Кто-нибудь может помочь? Вот код минус данные, которые вызывают эту проблему. Спасибо!!
<script type="text/javascript">
$(function () {
$("#SourceTree").jstree({
"json_data": {
"ajax": {
"url": "Home/GetTree",
"type": "POST",
"contentType": "application/json; charset=utf-8",
"dataType": "json",
"data": function (n) {
var result = "{'id':'" + (n.attr ? n.attr("id").replace("node_", "") : "0") + "'}";
return (result);
}
}
},
"crrm": {
"move": {
"always_copy": "multitree",
// Do not allow a node move within this tree
"check_move": function () {
return false;
},
}
},
"plugins": ["themes", "json_data", "ui", "types", "crrm", "dnd"]
})
$("#DestinationTree").jstree({
"json_data": {
"ajax": {
"url": "Home/GetTree",
"type": "POST",
"contentType": "application/json; charset=utf-8",
"dataType": "json",
"data": function (n) {
var result = "{'id':'" + (n.attr ? n.attr("id").replace("node_", "") : "0") + "'}";
return (result);
}
}
},
"plugins": ["themes", "json_data", "ui", "types", "dnd", "crrm"]
})
});
</script>
1 ответ
Хорошо, я разобрался с большим количеством проб и ошибок: исходное дерево должно иметь: 1) плагины "dnd" и "crrm", как в примере 2) Должна присутствовать функция move.check_move, как и выше 3) Нам не нужен move.always_copy, удалите это, здесь не нужно.
Дерево назначения должно иметь: 1) подключаемые модули "dnd" и "crrm", как в примере 2) Необходимо добавить crrm.move.always_copy:true, здесь. "crrm": { "move": { "always_copy": true } },