是否可以通过以下方式组合两个Fancytree:Fancytree A是固定的配置项集,Fancytree B是配置文件,并且可以将Fancytree A中的项拖放到Fancytree B中而不会在树A中消失。在Fancytree B中拖放也应该是可能的。

我已经搜索了一段时间,但没有找到我想要的东西,所以也许有人知道该怎么做!

最佳答案

使用标准功能从其他树甚至标准jQuery Draggables拖放节点绝对是可能的。

基本上,您使用相同的API

        $("#tree").fancytree({
            extensions: ["dnd"],
            ...
            dnd: {
                ...
                dragStart: function(node, data) {
                    if( data.originalEvent.shiftKey ){
                        console.log("dragStart with SHIFT");
                    }
                    // allow dragging `node`:
                    return true;
                },
                dragEnter: function(node, data) {
                    // Prevent dropping a parent below another parent (only sort
                    // nodes under the same parent)
/*                  if(node.parent !== data.otherNode.parent){
                        return false;
                    }
                    // Don't allow dropping *over* a node (would create a child)
                    return ["before", "after"];
*/
                   return true;
                },
                dragDrop: function(node, data) {
                    if( !data.otherNode ){
                        // It's a non-tree draggable
                        var title = $(data.draggable.element).text() + " (" + (count)++ + ")";
                        node.addNode({title: title}, data.hitMode);
                        return;
                    }
                    data.otherNode.moveTo(node, data.hitMode);
                }
            }
        });


该示例浏览器在Examples - Test - Drag'n'Drop下包含一个演示

关于javascript - 在两个Fancetree之间拖放,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39013800/

10-15 14:50