文档章节

zTree异步加载自动展开

隆回水哥
 隆回水哥
发布于 2015/07/26 02:24
字数 303
阅读 391
收藏 23

最近在处理一个树形菜单,要做到异步加载、自动展开。可怎么搞都不行,要点击一下才能展开所有。

使用的zTree版本是v3.5.18。其实还是蛮简单的。话不多说,代码如下:

/**
 * 初始化菜单
 */
var initTree = function(treeId) {
    var settings = {
            treeId: treeId,
            async: {
                enable: true,
                type: 'post',
                dataType: 'json',
                url: 'menu/getMenusByParentId',
                // 查询子菜单参数,传父节点id、以及父节点是否为叶子。叶子节点将不再查询,提高性能
                autoParam: ["id=parent_id", "is_leaf"], 
                dataFilter: function(treeId, parentNode, responseData) {
                    if(responseData) {
                        for(var i = 0, length = responseData.length; i < length; i++) {
                            var node = responseData[i];
                            if(node.is_leaf == 0) {//节点的isParent=true,才会异步加载子节点
                                node.isParent = true;
                            }
                        }
                    }
                    
                    return responseData;
                }
            },
            callback: {                    
                onAsyncSuccess: function(event, treeId, treeNode, msg){
                // 此回调函数可逐级异步展开子节点
                    if(treeNode.isParent == true && treeNode.children 
                        && treeNode.children.length > 0) {
                        var children = treeNode.children;                        
                        for(var i = 0, length = children.length; i < length; i++) {
                            zTreeObj.reAsyncChildNodes(children[i], "refresh", false); 
                        }
                        zTreeObj.expandNode(treeNode, true);
                    }
                }
            }
    };
    
    var rootNode = {name:"菜单", murl:'', isParent: true, open:false, id: 0, is_leaf: 0};
    var zTreeObj = $.fn.zTree.init($("#"+treeId), settings, rootNode);
    // 异步加载树.这里要注意:直接传rootNode异步刷新树,将无法展开rootNode。
    // 要通过如下方式获取根节点。false参数展开本节点
    zTreeObj.reAsyncChildNodes(zTreeObj.getNodes()[0], "refresh", false);        
};



© 著作权归作者所有

上一篇: junit 的几个注解
下一篇: Jersey 异常处理
隆回水哥
粉丝 14
博文 50
码字总数 18935
作品 0
深圳
高级程序员
私信 提问
ztree根据ID自动展开到指定节点。

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String type= request.getParameter("type"); %> 以......

小乞丐
2013/06/06
18K
9
zTree异步加载 和 节点新增问题

@zTree 你好,想跟你请教个问题:异步树在未展开(没加载子节点)的情况下,使用addNodes方法增加节点时,返回节点数据只有我自己添加的属性,没包含zTree自身的相关属性,如tId和parentTId...

倾角凌一
2017/02/28
1K
6
Ztree异步加载自动展开节点

在Ztree的官网Demo中,有自动展开的例子,是通过设置节点属性open:true来实现自动展开的,但是在异步加载中,这个属性设置为true也不会自动展开,因为open:true是指在有子节点的情况下展开,...

Junn
2013/02/20
10.3K
0
JQuery Tree插件——zTree v3.5.15 版 发布

zTree v3.5.15 发布,继续修正 bug,同时增加了一个很小的设置功能 setting.view.txtSelectedEnable。 GitHub:https://github.com/zTree/zTree_v3 zTree 在线操作演示:http://www.ztree.me...

zTree
2013/10/21
3.9K
11
zTree 异步加载和全部展开节点

@zTree 你好,想跟你请教个问题:您好,使用zTree时怎么样自动异步加载和展开所有的节点

chancong
2012/08/20
11.4K
5

没有更多内容

加载失败,请刷新页面

加载更多

自定义ApiBoot Logging链路以及单元ID生成策略

ApiBoot Logging会为每一个请求都对应创建链路编号(TraceID)以及单元编号(SpanID),用于归类每一次请求日志,通过一个链路下日志单元的Parent SpanID可以进行上下级关系的梳理。 前文回顾...

恒宇少年
26分钟前
11
0
浅谈 Application 和 activity

对于 在 Application初始化一些变量,为什么不可以放在activity 或者其他的组件里呢? 这里就根据个人的理解来讲述一下,欢迎补充指正。 首先 activity 是以栈的形式出现,一个app应用会有多...

MrLins
26分钟前
11
0
Allegro的脚本文件内容里都有哪些

小伙伴们在使用Allegro的时候是否经常用到脚本文件夹呢?scr的用法其实可真不简单。。。 首先脚本文件的运行模式就存在很多种,比如不提示错误信息,不弹出确认对画框(这样很有利于我们执行...

demyar
27分钟前
21
0
微信升级外链管理规范,「砍一刀帮我加速」要被禁止了

原创: 蒋鸿昌 首发:「知晓程序」公众号 - 最好的微信新商业媒体 几天前,知名互联网评论人阑夕模仿皮尤研究中心(Pew Research Center)在美国做的互联网通识调查问卷,做了一份中文版问卷...

知晓云
28分钟前
15
0
CentOS 7接投影仪

我将一台安装着CentOS 7图形界面的惠普笔记本电脑当桌面使用。最近,想要连接投影仪时却遇到了问题。笔记本有一个HDMI接口。我买了一个HDMI---->VGA的转接线,连上笔记本电脑后,屏幕一直在闪...

大别阿郎
31分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部