跳到主要內容

fancytree mode2

https://plugins.jquery.com/fancytree/

<script src="~/Scripts/lib/jquery.js"></script>
<script src="~/Scripts/lib/jquery-ui.custom.js"></script>
<link href="~/Scripts/src/skin-win7/ui.fancytree.css" rel="stylesheet" />
<script src="~/Scripts/src/jquery.fancytree.js"></script>
<script type="text/javascript">
    var treeData = [
        //{title: "item1 with key and tooltip", tooltip: "Look, a tool tip!" },
        //{title: "item2: selected on init", selected: true },
        {title: "Folder", folder: true, key: "id3",
            children: [
                {title: "Sub-item 3.1", key: "3.1",
                    children: [
                        {title: "Sub-item 3.1.1", key: "id3.1.1" },
                        {title: "Sub-item 3.1.2", key: "id3.1.2" }
                    ]
                },
                {title: "Sub-item 3.2", key: "3.2",
                    children: [
                        {title: "Sub-item 3.2.1", key: "id3.2.1" },
                        {title: "Sub-item 3.2.2", key: "id3.2.2" }
                    ]
                }
            ]
        },
        {title: "Document with some children (expanded on init)", key: "id4", expanded: true,
            children: [
                {title: "Sub-item 4.1 (active on init)",key: "4.1", active: true,
                    children: [
                        {title: "Sub-item 4.1.1", key: "id4.1.1" },
                        {title: "Sub-item 4.1.2", key: "id4.1.2" }
                    ]
                },
                {title: "Sub-item 4.2 (selected on init)" ,key: "4.2", selected: true,
                    children: [
                        {title: "Sub-item 4.2.1", key: "id4.2.1" },
                        {title: "Sub-item 4.2.2", key: "id4.2.2" }
                    ]
                },
                {title: "Sub-item 4.3 (hideCheckbox)" ,key: "4.3", hideCheckbox: true },
                { title: "Sub-item 4.4 (unselectable)", key: "4.4", unselectable: true }
            ]
        },
        {title: "Lazy folder", folder: true, lazy: true }  
    ];
    $(function(){
        $("#tree2").fancytree({
            //            extensions: ["select"],
            checkbox: true,
            selectMode: 2,
            source: treeData,
            //init: function (event, data) {
            //    //// Set key from first part of title (just for this demo output)
            //    //data.tree.visit(function (n) {
            //    //    //n.key = n.title.split(" ")[0];
            //    //    n.expanded = true;                  
            //    //});              
            //},
            //lazyLoad: function (event, ctx) {
            //    ctx.result = { url: "ajax-sub2.json", debugDelay: 1000 };
            //},
            //loadChildren: function (event, ctx) {
            //    ctx.node.fixSelection3AfterClick();
            //},
            select: function(event, data) {
                // Display list of selected nodes
                var selNodes = data.tree.getSelectedNodes();
                // convert to title/key array
                var selKeys = $.map(selNodes, function(node){
                    return "[" + node.key + "]: '" + node.title + "'";
                });
                $("#echoSelection2").text(selKeys.join(", "));              
            },
            click: function(event, data) {
                // We should not toggle, if target was "checkbox", because this
                // would result in double-toggle (i.e. no toggle)
                //
                alert(data.node.key);
                alert(data.node.title);
            },
            keydown: function(event, data) {
                if( event.which === 32 ) {
                    data.node.toggleSelected();
                    return false;
                }
            },
            // The following options are only required, if we have more than one tree on one page:
            cookieId: "fancytree-Cb2",
            idPrefix: "fancytree-Cb2-"
        });
        $("#btnToggleSelect").click(function () {
            $("#tree2").fancytree("getRootNode").visit(function (node) {
                node.toggleSelected();
            });
            return false;
        });
        $("#btnDeselectAll").click(function () {
            $("#tree2").fancytree("getTree").visit(function (node) {
                node.setSelected(false);
            });
            return false;
        });
        $("#btnSelectAll").click(function () {
            $("#tree2").fancytree("getTree").visit(function (node) {
                node.setSelected(true);
            });
            return false;
        });
    });
    </script>
<!-- Tree #2 -->

<p>
    <a href="#" id="btnSelectAll">Select all</a> -
    <a href="#" id="btnDeselectAll">Deselect all</a> -
    <a href="#" id="btnToggleSelect">Toggle select</a>
</p>
<div id="tree2"></div>
<div>Selected keys: <span id="echoSelection2">-</span></div>