Ztree的简单使用

ZTree的简介

ZTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。

目录节点信息的判断

通过setting的callback中的beforeClick回调函数,在单击前对是不是类目信息,进行判断。

通过点击获取ZTree的节点信息

通过在setting的callback中的onClick回调函数,获取单击的信息,并做处理。

使用ZTree构造一个简单的树

需要导入的js和css文件
        <link rel="stylesheet" href="../../css/zTreeStyle/zTreeStyle.css" />
        <script type="text/javascript" src="../../js/jquery-1.4.4.min.js"></script>
        <script type="text/javascript" src="../../js/jquery.ztree.core.js"></script>
封装的工具方法
var zTreeUtil = {
                defaluts: { //默认参数
                    type: "GET",
                    url: "jsonData.json",
                    dataType: "json",
                    treeId: undefined,
                    showDataId: undefined
                },
                zNodes: "", //用于保存创建的树节点
                setting: { //设置
                    view: {
                        showLine: true, //显示辅助线
                        dblClickExpand: true
                    },
                    data: {
                        simpleData: {
                            enable: true,
                            idKey: "id",
                            pIdKey: "pid",
                            rootPId: 0
                        }
                    },
                    callback: { //回调设置
                        beforeClick: function(treeId, treeNode) { //设置不能选择类目
                            var check = (treeNode && !treeNode.isParent);
                            if(!check) alert("请不要选择类别!");
                            return check;
                        },
                        onClick: function(e, treeId, treeNode) {
                            var zTree = $.fn.zTree.getZTreeObj(zTreeUtil.defaluts.treeId), //页面传递的treeId
                                nodes = zTree.getSelectedNodes(),
                                nameData = "";
                            nodes.sort(function compare(a, b) {
                                return a.id - b.id;
                            });
                            for(var i = 0, l = nodes.length; i < l; i++) { //获取nameData
                                nameData += nodes[i].name + ",";
                            }
                            if(nameData.length > 0) {
                                nameData = nameData.substring(0, nameData.length - 1);
                            }
                            if(undefined != zTreeUtil.defaluts.showDataId) { //数据回显
                                var nameObj = $("#" + zTreeUtil.defaluts.showDataId);
                                nameObj.attr("value", nameData);
                                var nameid = ""; //设置nameid属性
                                for(var i = 0, l = nodes.length; i < l; i++) {
                                    nameid += nodes[i].id + ",";
                                }
                                if(nameid.length > 0) {
                                    nameid = nameid.substring(0, nameid.length - 1);
                                }
                                nameObj.attr("nameid", nameid);
                            }

                        }
                    }
                },
                createTree: function(options) { //创建树
                    zTreeUtil.defaluts = $.extend({}, zTreeUtil.defaluts, options); //使用jQuery.extend 覆盖插件默认参数
                    $.ajax({ //请求数据,创建树
                        type: zTreeUtil.defaluts.type,
                        url: zTreeUtil.defaluts.url,
                        dataType: zTreeUtil.defaluts.dataType, //返回的结果为json  
                        success: function(data) {
                            zNodes = $.fn.zTree.init($("#" + zTreeUtil.defaluts.treeId), zTreeUtil.setting, data); //创建树
                        },
                        error: function(data) {
                            alert("创建树失败!");
                        }
                    });
                }
            };

在页面生成一个树

页面JS代码
    $(function() { //创建
        zTreeUtil.createTree({
            url: "jsonData.json",
            treeId: "treeDemo",
            showDataId: "nameSel"
        });
    });
页面HTML代码
<body>
    <div style="margin-left: 40%;">
        <input id="nameSel" type="text" readonly placeholder="选中的内容..." />
        <ul id="treeDemo" class="ztree" style="margin-top: 0; width: 160px;">
        </ul>
    </div>
</body>
页面截图

使用的JSON数据

[
    {
        "id": 1,
        "pid": 0,
        "name": "pNode 1",
        "open": true,
        "attr": "id1"
    }, {
        "id": 11,
        "pid": 1,
        "name": "pNode 11",
        "attr": "id11"
    }, {
        "id": 111,
        "pid": 11,
        "name": "leaf node 111",
        "attr": "id111"
    }, {
        "id": 112,
        "pid": 11,
        "name": "leaf node 112",
        "attr": "id112"
    }, {
        "id": 12,
        "pid": 1,
        "name": "pNode 12",
        "attr": "id12"
    }, {
        "id": 2,
        "pid": 0,
        "name": "pNode 2",
        "attr": "id2"
    }, {
        "id": 21,
        "pid": 2,
        "name": "pNode 21",
        "open": true,
        "attr": "id21"
    }
]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值