zoukankan      html  css  js  c++  java
  • Fancytree实例

    一、实例

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>fancyTreeTest</title>
        <script src="jquery.js"></script>
        <script src="jquery-ui.min.js"></script>
        <link href="ui.fancytree.min.css" rel="stylesheet" />
        <script src="jquery.fancytree-all.min.js"></script>
        <script type="text/javascript">
            $(function () {
                //Create the tree inside the <div id="tree"> element.与zTree类似
                // 基础配置,返回数据包括
                $("#tree")
                    .fancytree({
                        source: [
                            { "title": "Node 1", "key": "1" },
                            {
                                "title": "Folder 2",
                                "key": "2",
                                "folder": true,
                                "children": [
                                    { "title": "Node 2.1", "key": "3" },
                                    { "title": "Node 2.2", "key": "4" }
                                ]
                            }
                        ]
                    });
            });
        </script>
                    <script>
                        $.ui.fancytree.debugLevel = 1; // silence debug output
                        function logEvent(event, data, msg) {
                            //        var args = $.isArray(args) ? args.join(", ") :
                            msg = msg ? ": " + msg : "";
                            $.ui.fancytree.info("Event('" + event.type + "', node=" + data.node + ")" + msg);
                        }
    
                        $(function () {
                            $("#tree")
                                .fancytree({
                                    checkbox: true,
                                    // --- Tree events -------------------------------------------------
                                    blurTree: function (event, data) {
                                        logEvent(event, data);
                                    },
                                    create: function (event, data) {
                                        logEvent(event, data);
                                    },
                                    init: function (event, data, flag) {
                                        logEvent(event, data, "flag=" + flag);
                                    },
                                    focusTree: function (event, data) {
                                        logEvent(event, data);
                                    },
                                    restore: function (event, data) {
                                        logEvent(event, data);
                                    },
                                    // --- Node events -------------------------------------------------
                                    activate: function (event, data) {
                                        logEvent(event, data);
                                        var node = data.node;
                                        // acces node attributes
                                        $("#echoActive").text(node.title);
                                        if (!$.isEmptyObject(node.data)) {
                                            //                    alert("custom node data: " + JSON.stringify(node.data));
                                        }
                                    },
                                    beforeActivate: function (event, data) {
                                        logEvent(event, data, "current state=" + data.node.isActive());
                                        // return false to prevent default behavior (i.e. activation)
                                        //              return false;
                                    },
                                    beforeExpand: function (event, data) {
                                        logEvent(event, data, "current state=" + data.node.isExpanded());
                                        // return false to prevent default behavior (i.e. expanding or collapsing)
                                        //                return false;
                                    },
                                    beforeSelect: function (event, data) {
                                        //                console.log("select", event.originalEvent);
                                        logEvent(event, data, "current state=" + data.node.isSelected());
                                        // return false to prevent default behavior (i.e. selecting or deselecting)
                                        //                if( data.node.isFolder() ){
                                        //                    return false;
                                        //                }
                                    },
                                    blur: function (event, data) {
                                        logEvent(event, data);
                                        $("#echoFocused").text("-");
                                    },
                                    click: function (event, data) {
                                        logEvent(event, data, ", targetType=" + data.targetType);
                                        // return false to prevent default behavior (i.e. activation, ...)
                                        //return false;
                                    },
                                    collapse: function (event, data) {
                                        logEvent(event, data);
                                    },
                                    createNode: function (event, data) {
                                        // Optionally tweak data.node.span or bind handlers here
                                        logEvent(event, data);
                                    },
                                    dblclick: function (event, data) {
                                        logEvent(event, data);
                                        //                data.node.toggleSelect();
                                    },
                                    deactivate: function (event, data) {
                                        logEvent(event, data);
                                        $("#echoActive").text("-");
                                    },
                                    expand: function (event, data) {
                                        logEvent(event, data);
                                    },
                                    focus: function (event, data) {
                                        logEvent(event, data);
                                        $("#echoFocused").text(data.node.title);
                                    },
                                    keydown: function (event, data) {
                                        logEvent(event, data);
                                        switch (event.which) {
                                            case 32: // [space]
                                                data.node.toggleSelected();
                                                return false;
                                        }
                                    },
                                    keypress: function (event, data) {
                                        // currently unused
                                        logEvent(event, data);
                                    },
                                    lazyLoad: function (event, data) {
                                        logEvent(event, data);
                                        // return children or any other node source
                                        data.result = { url: "ajax-sub2.json" };
                                        //                data.result = [
                                        //                    {title: "A Lazy node", lazy: true},
                                        //                    {title: "Another node", selected: true}
                                        //                    ];
                                    },
                                    loadChildren: function (event, data) {
                                        logEvent(event, data);
                                    },
                                    loadError: function (event, data) {
                                        logEvent(event, data);
                                    },
                                    postProcess: function (event, data) {
                                        logEvent(event, data);
                                        // either modify the ajax response directly
                                        data.response[0].title += " - hello from postProcess";
                                        // or setup and return a new response object
                                        //                data.result = [{title: "set by postProcess"}];
                                    },
                                    removeNode: function (event, data) {
                                        // Optionally release resources
                                        logEvent(event, data);
                                    },
                                    renderNode: function (event, data) {
                                        // Optionally tweak data.node.span
                                        //              $(data.node.span).text(">>" + data.node.title);
                                        logEvent(event, data);
                                    },
                                    renderTitle: function (event, data) {
                                        // NOTE: may be removed!
                                        // When defined, must return a HTML string for the node title
                                        logEvent(event, data);
                                        //                return "new title";
                                    },
                                    select: function (event, data) {
                                        logEvent(event, data, "current state=" + data.node.isSelected());
                                        var s = data.tree.getSelectedNodes().join(", ");
                                        $("#echoSelected").text(s);
                                    }
                                })
                                .bind("fancytreeactivate",
                                    function (event, data) {
                                        // alternative way to bind to 'activate' event
                                                    logEvent(event, data);
                                    })
                                .on("mouseenter mouseleave",
                                    ".fancytree-title",
                                    function (event) {
                                        // Add a hover handler to all node titles (using event delegation)
                                        var node = $.ui.fancytree.getNode(event);
                                        node.info(event.type);
                                    });
                            $("#btnSelect")
                                .click(function (event) {
                                    var node = $("#tree").fancytree("getActiveNode");
                                    node.setSelected(!node.isSelected());
                                });
                            $("#btnRemove")
                                .click(function (event) {
                                    var node = $("#tree").fancytree("getActiveNode");
                                    node.remove();
                                });
                        });
                    </script>
    </head>
    <body>
        [...]
        <!--  show tree  -->
        <div id="tree">...</div>
        [...]
    </body>
    </html>
    

      总结:1)将body中的div换成table就会出现上边不同的结果,最右边结果

         2)对数的具体操作:

    //获取Id为tree的Fancytree对象
    $("#tree").fancytree("getTree")
    
    //获取tree的根节点
    $("#tree").fancytree("getRootNode")
    
    //访问每个节点并把节点展开
    $("#tree").fancytree("getRootNode").visit(function(node) {
                    node.setExpanded(true);

         3)参考大牛:http://wwwendt.de/tech/fancytree/demo/

          官方文档下载:http://wwwendt.de/tech/fancytree/demo/

  • 相关阅读:
    环保
    A股行情记录
    航运
    黑五类
    家电
    妖股
    高校概念股
    科技园区
    壳股
    白底黑字or黑底白字,眼睛更喜欢哪一个?
  • 原文地址:https://www.cnblogs.com/wenlong512/p/7340302.html
Copyright © 2011-2022 走看看