在树之间复制节点时,Jstree always_copy无法正常工作

时间:2013-01-29 17:21:04

标签: jquery-plugins jstree drag-and-drop

我真的陷入了一个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 个答案:

答案 0 :(得分:0)

好的,我想通了很多试验和错误: 源树必须具有: 1)“dnd”&amp; “crrm”就像示例一样插入ins 2)move.check_move函数必须存在以及上面 3)我们不需要move.always_copy,删除它,这里不需要。

目标树必须具有: 1)“dnd”&amp; “crrm”就像示例一样插入ins 2)需要在这里添加crrm.move.always_copy:true。                 “crrm”:{                     “移动”:                     {                         “always_copy”:是的                     }                 },