JQuery/JS插件 zTree樹,點擊當前節點展開,其他節點關閉


好像沒找到現成的,就自己寫了一個demo。

 

效果如下:

 

代碼:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <meta charset="utf-8" />
    <script src="../jquery-2.1.4.js"></script>
    <link href="zTree_v3/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" />
    <script src="zTree_v3/js/jquery.ztree.core-3.5.js"></script>


    <script type="text/javascript">

        //獲取當前父節點 參數:等級
        var getNodeByLevel = function (arr, level) {
            for (var i = 0; i < arr.length; i++) {
                var item = arr[i];
                if (item.level == level) {
                    return item;
                }
            }
            return null;
        };

        //折疊節點 非當前父節點
        var collapseNodes = function (allTwoNodes, twoNode) {
            for (var i = 0; i < allTwoNodes.length; i++) {
                var item = allTwoNodes[i];
                if ((twoNode != null) && (twoNode.id == item.id)) {
                    continue;
                }
                treeObj.expandNode(item, false, true, false);
            }
        }

        var zNodes = [
            // 第一層
            { id: 1, pId: 0, name: "父節點1 - 展開", open: true },

            // 第二層
            { id: 11, pId: 1, name: "父節點11 - 折疊", icon: "zTree_v3/css/zTreeStyle/img/diy/2.png", open: true },
            // 第三層
            { id: 111, pId: 11, name: "葉子節點111", click: false, open: true },
            { id: 112, pId: 11, name: "葉子節點112", open: true },
            // 第四層
            { id: 1121, pId: 112, name: "三級1" },
            { id: 1122, pId: 112, name: "三級2" },
            { id: 1123, pId: 112, name: "三級3" },

            // 第二層
            { id: 12, pId: 1, name: "父節點12", open: true },
            // 第三層
            { id: 121, pId: 12, name: "葉子節點121" },
            { id: 122, pId: 12, name: "葉子節點122", open: true },
            // 第四層
            { id: 1221, pId: 122, name: "三級1" },
            { id: 1222, pId: 122, name: "三級2" },
            { id: 1223, pId: 122, name: "三級3" },
        ];

        var setting = {
            type: "expandAll",//全部展開
            view: {
                showLine: false,//不顯示連接線
            },
            data: {
                simpleData: {
                    enable: true
                }
            },
            callback: { //回調函數
                beforeClick: function (treeId, treeNode, clickFlag) {

                },
                onClick: function (vent, treeId, treeNode, clickFlag) {
                    //console.log(treeNode);
                    //console.log(treeNode.getParentNode());
                    //console.log(treeNode.getIndex());
                    //console.log(treeNode.getPath());
                    var nodes = treeNode.getPath();
                    var twoNode = getNodeByLevel(nodes, 1);
                    var oneNode = getNodeByLevel(nodes, 0);
                    var allTwoNodes = oneNode.children;
                    collapseNodes(allTwoNodes, twoNode);
                },
                onCollapse: function (event, treeId, treeNode) {
                    //alert('onCollapse / 折疊');//折疊
                },
                onExpand: function (event, treeId, treeNode) {
                    //alert('onExpand / 展開');//展開
                }
            }
        };

        //樹初始化
        var treeObj = null;
        $(document).ready(function () {
            treeObj = $.fn.zTree.init($("#treeDemo"), setting, zNodes);
        });

    </script>
</head>
<body>
    <div class="content_wrap">
        <div class="zTreeDemoBackground left">
            <!-- ztree的容器 -->
            <ul id="treeDemo" class="ztree"></ul>
        </div>
    </div>
</body>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM