zTree异步加载自动展开
2015-07-26 00:00
302 查看
摘要: zTree 异步加载 自动展开
最近在处理一个树形菜单,要做到异步加载、自动展开。可怎么搞都不行,要点击一下才能展开所有。
使用的zTree版本是v3.5.18。其实还是蛮简单的。话不多说,代码如下:
最近在处理一个树形菜单,要做到异步加载、自动展开。可怎么搞都不行,要点击一下才能展开所有。
使用的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); };
相关文章推荐
- ajax传输json到后台
- Cookie/Session机制详解
- 2015 Multi-University Training Contest 2 1002
- Android开发教程精粹30篇
- 基于TQ2440的SPI驱动学习(OLED)
- Visual Studio 各版本下载
- 安卓史上最简单扫描二维码和生成二维码
- 折腾了这么久,说说虚拟机与物理机之间文件共享方案各自特点(可能会不时补充)
- 初学zigbee--IO口中断产生配置条件
- 学习solr不错的系列博文
- 算法分析--数量级比较
- Convert Sorted List to Binary Search Tree
- Android Studio导入github上面的项目以及发生的问题
- spring data redis RedisTemplate操作redis相关用法
- Entity Framework中使用IEnumerable<T>、IQueryable<T>及IList<T>的区别
- JavaScript学习笔记——运算符和表达式
- 反射已经"Out",动态编译才能"Hold"住
- java多线程学习笔记——相关名词介绍
- sublime 3 build
- linux性能分析命令-扫盲贴