0

我需要能够将数据从 Fancytree 外部拖放到树中并保存。我有任何可用的可放置(行)的键和标题,但是如何将其添加到用户放置它的确切位置的树中?

http://jsfiddle.net/nwntpd15/5/

$("#tree").fancytree({
        rootVisible: false,
        checkbox: false,
        selectMode: 1,
        clickFolderMode: 4, 
        debugLevel: 0, 
        source: [
            {title: "Node 1"},
            {title: "Node 2", key: "id2"},
            {title: "Folder 3", folder: true, children: [
                {title: "Node 3.1"},
                {title: "Node 3.2"}
            ]},
            {title: "Folder 2", folder: true}
        ],
        extensions: ["dnd"],
        dnd: {
            autoExpandMS: 400,
            focusOnClick: false,
            preventVoidMoves: true, // Prevent dropping nodes 'before self', etc.
            preventRecursiveMoves: true, // Prevent dropping nodes on own descendants
            dragStart: function(node, data) {
                return true;
            },
            dragEnter: function(node, data) {
               return true;
            },
            dragDrop: function(node, data) {
                /** This function MUST be defined to enable dropping of items on
                 *  the tree.
                 */
                data.otherNode.moveTo(node, data.hitMode);
                /**/
                return false;
            }
        }
    });

    $( ".drag").draggable();
4

2 回答 2

1

一个示例可能如下所示:

    var count = 1;
    $("#tree").fancytree({
        ...
        dnd: {
            ...
            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);
            }
于 2014-11-19T07:35:28.733 回答
1

包括 jQueryUI 可拖动的解决方案。感谢 @mar10 的贡献,它为我指明了正确的方向(现在让它为 Datatables 工作)。http://jsfiddle.net/nwntpd15/13/

$(".draggable").draggable({
  revert: true, //"invalid",
  cursorAt: { top: -5, left: -5 },
  connectToFancytree: true,   // let Fancytree accept drag events
});
于 2014-11-19T14:23:27.083 回答