Jquery Ztree异步加载树

1. 下载jquery的JS文件/ztree的CSS文件和JS文件

2. 目录结构

1516266-20181105210807185-1687873330.png

3. asyncTree.html


<head>

    <!-- 引入文件 -->

    <link rel="stylesheet" href="./resource/css/zTreeStyle.css" />

    <script type="text/javascript" src="./resource/js/jquery-1.10.2.js"></script>
    <script type="text/javascript" src="./resource/js/jquery.ztree.core.js"></script>
</head>
<body>
   <body>
    // treeDOM元素
    <div class="content_wrap">
        <div class="zTreeDemoBackground left">
            <ul id="treeDemo" class="ztree"></ul>
        </div>
    </div>
    // tree JS
   <script type="text/javascript">
        // 配置
        var setting = {
            view: {
                selectedMulti: false
            },
            async: { // 属性配置
                enable: true, 
                url:"./resource/json/getNodes.json", 
                autoParam:["id", "name=name"], 
                // otherParam:{"otherParam":"zTreeAsyncTest"}, 
                type: 'get',
                dataFilter: filter
            },
            callback: { // 回调函数配置
                beforeClick: beforeClick, 
                beforeAsync: beforeAsync
            }
        };
        // 数据处理回调函数
        function filter(treeId, parentNode, childNodes) {
            if (!childNodes) return null;
            for (var i=0, l=childNodes.length; i<l; i++) {
                childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.');
            }
            return childNodes;
        }
        // 节点点击前回调函数 (treeId -- treeId-对应zTree容器元素的id;;; treeNode -- 点击节点JSON对象)
        function beforeClick(treeId, treeNode) { // 选中节点
            if (!treeNode.isParent) {
                return false;
            } else {
                return true;
            }
        }
        // 异步加载前回调函数(treeId-对应zTree容器元素的id;;treeNode-进行异步加载的父节点 JSON 数据对象)
        function beforeAsync(treeId, treeNode) {
            return true;
        }
         
        $(document).ready(function() {
            // 初始化树
            $.fn.zTree.init($("#treeDemo"), setting);
        });
    </script>
</body>

预览

1516266-20181105210836312-415374109.jpg =》 1516266-20181105210842741-578557197.jpg

async 属性解析:

  • enable: true — 设置 zTree 是否开启异步加载模式
  • url:"./resource/json/getNodes.json" — Ajax 获取数据的 URL 地址
  • autoParam:["id", "name=name"] — 异步加载时(初始化时不需要)需要自动提交父节点属性的参数
  • otherParam:{"otherParam":"zTreeAsyncTest"} — Ajax 请求提交的静态参数(初始化请求、异步加载请求时都会有此参数)
  • type: 'get' — 获取数据的方法
  • dataFilter: filter — 用于对 Ajax 返回数据进行预处理的函数

callback属性解析:

  • beforeClick: 方法名 - 用于捕获单击节点之前的事件回调函数,并且根据返回值确定是否允许单击操作
  • beforeAsync: 方法名 - 用于捕获异步加载之前的事件回调函数,zTree 根据返回值确定是否允许进行异步加载

  • onAsyncSuccess: 方法名 — 用于捕获异步加载正常结束的事件回调函数
  • onClick: 方法名 — 用于捕获节点被点击的事件回调函数

4: 额外功能-----默认选中第一项 -- 此处可省略

修改asyncTree.html

// callback中添加属性

onAsyncSuccess: onAsyncSuccess, // 用于捕获异步加载正常结束的事件回调函数

onClick: function (event, treeId, treeNode) { // 用于捕获节点被点击的事件回调函数  

    beforeClick(treeId, treeNode)

}
// 添加加载成功后的回调函数
function onAsyncSuccess(event, treeId, treeNode, msg) {
            // 默认选中个第一项操作:第三步
            var msgJson = JSON.parse(msg)
            var firstMsgItem = null;
            for(var i=0; i<msgJson.length; i++){
                var item = msgJson[i];
                if(!item.isParent){
                    firstMsgItem = item;
                    break;
                }
            }
            if(firstMsgItem){
                var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
                var node = treeObj.getNodeByParam('id', firstMsgItem.id);
                treeObj.selectNode(node);
                treeObj.setting.callback.onClick(null, treeObj.setting.treeId, node);//调用事件
            }
        }

预览

1516266-20181105210902916-120693523.jpg =》 1516266-20181105210918245-784616546.jpg

转载于:https://www.cnblogs.com/zero-zm/p/9911573.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值