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 } },

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