EleTree组件异步加载实现

本文详细介绍了如何使用EleTree组件实现异步加载功能,包括配置参数、事件监听及AJAX请求处理,通过实例展示了如何动态加载节点数据,适用于需要高效管理大量层级数据的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EleTree组件异步加载实现

div id="test1" lay-filter="data1"></div>
<script>
layui.config({
    base: "/static/layuiadmin/modules/"
	}).use('eleTree', function(){
    var $ = layui.$;        
    var eleTree = layui.eleTree;        
    var el;        
    var rootId=0;                
    //渲染        
    el=eleTree.render({                    
        elem: '#test1'                    
        ,url:"/item/cat/list/"+rootId                    
        ,type:'get'                    
        ,id: 'demoId1'                    
        ,showLine:true                    
        ,showCheckbox: true        
    });        
    // 节点点击事件        
    eleTree.on("nodeClick(data1)",function(d) {            
        $.ajax({                
            url:"/item/cat/list/"+d.data.currentData.id,                
            type:'get',                
            success:function (result) {                    
                var nodes = result.data;                    
                for(var i=0;i<nodes.length;i++){                        
                    var node=JSON.parse(JSON.stringify(nodes[i]));//不加这个会出现找不到ID属性的问题?                        
                    el.append(d.data.currentData.id,node);                    }                    //测试数据                    
                // {                    
                //     id: 1,                    
                //         label: "安徽省",                    
                //     children: []                    
                // }                    
                // console.log(d.data);    
                // 点击节点对应的数据                    
                // console.log(d.event);   
                // event对象                    
                // console.log(d.node);    
                // 点击的dom节点                    
                // console.log(this);      // 与d.node相同                
            }            
        });        
    })    
});
</script>

优化版

el=eleTree.render({
                    elem: '#test1'
                    ,url:"/content/find/"+rootId
                    ,type:'get'
                    ,id: 'demoId1'
                    ,lazy: true
                    ,showLine:true
                    ,accordion:false
                    ,checkStrictly: true
                    ,highlightCurrent:true
                    ,defaultExpandAll: true
                    ,contextmenuList: ["add.async","edit","remove"]
                    ,load:function (oldNode,callback) {
                $.ajax({
                    url: "/content/find/" + oldNode.id,
                    type: 'get',
                    success: function (result) {
                        var newNode = result.data;
                        setTimeout(function () {
                            callback(newNode);
                        }, 100);
                    }
                });
            }
        });


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值