ztree关于子节点问题

SkyHero123 发布于 2017/07/20 14:12
阅读 254
收藏 0

@zTree 你好,想跟你请教个问题:

我的ztree初始化如下:

-------**********-------------

var getUrl = "/hlms/menu/getMenuTree";
                var zTreeObj = $.fn.zTree
                        .init(
                                $("#fmenu"),
                                {

                                    check : {
                                        autoCheckTrigger : true,
                                        chkStyle : "checkbox",
                                        enable : true
                                    //设置是否显示checkbox复选框
                                    },
                                    data : {
                        
                                        simpleData : {
                                            enable : true,
                                            idKey : "id",
                                            pIdKey : "parentId",
                                           rootPId:null//根  
                                        }
                                    },
                                    async : {
                                        autoParam : [ "id" ],
                                        contentType : "application/x-www-form-urlencoded",
                                        enable : true,
                                        type : "post",
                                        url : getUrl,
                                        dataFilter : function ajaxDataFilter(
                                                treeId, parentNode, childNodes) {
                                            var myNode = JSON.parse(childNodes.myJson);
                                            childNodes = myNode.data;                                           
                                            return childNodes;
                                        }
                                    },

                                    callback : {
                                        onAsyncSuccess : function(event,
                                                treeId, treeNode, msg) {
                            
                                        },
                                
                                    
                                    }

                                });

------**********---------

后台获取数据在dataFilter解析后返回的如下:

[{"id":100028,"pId":0,"name":"知识库","isParent":true},{"id":10002,"pId":0,"name":"医废管理","isParent":true},{"id":103857,"pId":0,"name":"巡检管理","isParent":true},{"id":10001,"pId":0,"name":"系统管理","isParent":true},{"id":20002,"pId":0,"name":"维修管理","isParent":true}]

然后页面显示如下:

正常,但是点击父节点获取数据如下,例如点击医废管理:

[{"id":100031,"pId":10002,"name":"医废设备管理","isParent":false},{"id":10002001,"pId":10002,"name":"医废查询","isParent":false}]

但是子节点么有显示,效果如下:

如上图,点击知识库、巡检管理、系统管理也是如此,数据都获取了,但是子节点没有显示。

但是点击维修管理就显示了如下,数据为:

[{"id":20002001,"pId":20002,"name":"维修任务分配","isParent":false}]

 

效果如下:

我有做了如下测试,改变菜单顺序,无论谁在最后,谁的子节点就能显示,其他则不能。这是异步的情况。

还有非异步情况,同样是哪个父节点在最后,哪个子节点可以显示,其他不能。但是数据都有:非异步情况获取数据如下:

[
    {
        "id": 100028,
        "pId": 0,
        "name": "知识库",
        "isParent": true,
        "children": [
            {
                "id": 100029,
                "pId": 100028,
                "name": "知识库管理",
                "isParent": false
            }
        ]
    },
    {
        "id": 10002,
        "pId": 0,
        "name": "医废管理",
        "isParent": true,
        "children": [
            {
                "id": 10002001,
                "pId": 10002,
                "name": "医废查询",
                "isParent": false
            }
        ]
    },
    {
        "id": 103857,
        "pId": 0,
        "name": "巡检管理",
        "isParent": true,
        "children": [
            {
                "id": 201706061,
                "pId": 103857,
                "name": "巡检计划任务模板管理",
                "isParent": false
            }
        ]
    },
    {
        "id": 10001,
        "pId": 0,
        "name": "系统管理",
        "isParent": true,
        "children": [
            {
                "id": 100017,
                "pId": 10001,
                "name": "班组管理",
                "isParent": false
            }
        ]
    },
    {
        "id": 20002,
        "pId": 0,
        "name": "维修管理",
        "isParent": true,
        "children": [
            {
                "id": 20002001,
                "pId": 20002,
                "name": "维修任务分配",
                "isParent": false
            }
        ]
    }
]

 

请问哪个地方出的问题,导致如此

加载中
0
S
SkyHero123

@ztree  这是不是个bug,还是jQuery版本的问题?

0
zTree
zTree

的确是从来没有人出现过这种情况呀,请你更换 jQuery 版本尝试一下。

另外

1、当你都展开后, 利用 getNodes 方法得到节点数据,看看数据结构是否正常

2、如果数据结构正常,那么去看 dom 结构是否正常

再看看 有木有 js 报错。。。你可以直接操作 zTree 提供的标准Demo,看看是否会出现你的异常情况

返回顶部
顶部