需求:页面加载完成之后,默认选中ztree的根节点,并执行其点击方法,右侧生成表格;
效果:如下图所示;
思路:在节点点击事件clickNode方法中根据节点的部门code查询这个部门下的所有员工,并在右侧渲染layui表格。
function clickNode(e,treeId,treeNode) {
getUserList(treeNode);
}
function getUserList(treeNode) {
table.render({
.....
});
}
这样的话在点击这个节点的时候在右侧生成表格是没有问题的,但是如果想在页面加载完成之后自动选中这个节点,并在右侧生成表格,就需要下面的代码:
$(document).ready(function() {
$.ajax({
type : "POST",
dataType : "json",
url : "*****",
async : false,
success : function(data) {
zTree = $.fn.zTree.init($("#mytree"), setting, data);
zTree.expandAll(zTree);
var treeObj = $.fn.zTree.getZTreeObj("mytree"); //获取ztree对象
var node = zTree.getNodeByParam('level', 0); // 获取根节点
treeObj.selectNode(node); // 选择节点
clickNode(null, zTree.setting.treeId, node); // 调用事件方法
}, error : function(error) {
layer.msg('数据加载失败!', {
icon : 2,
time : 1500
})
}
});
});
在加载完成后再执行点击事件的方法clickNode,理论上是可行的,但是执行代码的时候就会一直报错,table is not defined,原来是因为页面加载顺序问题,导致左边ztree先加载完成需要使用右边layui的table对象,作如下处理,ztree加载完成之后等待一秒钟让layui加载,再执行点击方法,代码如下:
$(document).ready(function() {
$.ajax({
type : "POST",
dataType : "json",
url : "*****",
async : false,
success : function(data) {
zTree = $.fn.zTree.init($("#mytree"), setting, data);
zTree.expandAll(zTree);
var treeObj = $.fn.zTree.getZTreeObj("mytree");
var node = zTree.getNodeByParam('level', 0);
treeObj.selectNode(node); // 选择点
setTimeout(function(){
clickNode(null, zTree.setting.treeId, node); // 调用事件方法
},1000);
},
error : function(error) {
layer.msg('系统错误!', {
icon : 2,
time : 1500
})
}
});
});

update  at 2018-12-17 14:57

今天在测试过程中发现了一个更好的解决方法,layui的回调方法是在$().ready()方法之后执行的,那么也就是说在页面初始加载的时候如果先执行$().ready()方法里面的内容时可以的,但是如果这个方法里用到了layui里面的组件,那就会出现本文产生的问题。既然layui也是在页面完成之后再进行加载,那么我就想着这个方法是不是可以代替$().ready()?

layui.config({
base : '${ctx}/static/layuiadmin/'
}).extend({
index : 'lib/index'
}).use([ 'index', 'table', 'layer', 'form' ], function() {
var $ = layui.$;
var form = layui.form;
table = layui.table;
form.render(); loadDefaltTable();
});
function loadDefaltTable() {
$.ajax({
type : "POST",
dataType : "json",
url : "*****",
async : false,
success : function(data) {
   zTree = $.fn.zTree.init($("#mytree"), setting, data);
   zTree.expandAll(zTree);
   var treeObj = $.fn.zTree.getZTreeObj("mytree");
   var node = zTree.getNodeByParam('level', 0);
   treeObj.selectNode(node); // 选择点
   clickNode(null, zTree.setting.treeId, node); // 调用事件方法
},
  error : function(error) {
layer.msg('系统错误!', {
icon : 2,
time : 1500
})
}
}); }

于是我把上文的代码封装成方法,写到了layui的回调里,测试一波是可行的。这样如果页面上使用了layui的组件时就可以用layui的回调代替$().ready()方法。

Ztree加载完成默认选中根节点右侧生成表格的更多相关文章

  1. zTree实现单独选中根节点中第一个节点

    zTree实现单独选中根节点中第一个节点 1.实现源码 <!DOCTYPE html> <html> <head> <title>zTree实现基本树& ...

  2. jQuery+zTree加载树形结构菜单

    jQuery+zTree加载树形结构菜单 由于项目中需要设计树形菜单功能,经过一番捣腾之后,终于给弄出来了,所以便记下来,也算是学习zTree的一个总结吧. zTree的介绍: 1.zTree 是利用 ...

  3. 参考 ZTree 加载大数据量。加载慢问题解析

    参考 ZTree 加载大数据量. 1.一次性加载大数据量加载说明 1).zTree v3.x 针对大数据量一次性加载进行了更深入的优化,实现了延迟加载功能,即不展开的节点不创建子节点的 DOM. 2) ...

  4. Ztree加载完成后显示勾选节点

    ①前言:这个在度娘上没有搜到解决的办法,于是自己查看了ztree的API,发现其实还是比较简单的.做个笔记以备不时之需. ②需求: 像下图一样,在加载完成之后就显示需要勾选的项. ③解决方案: 首先页 ...

  5. LayUi 树形组件tree 实现懒加载模式,展开父节点时异步加载子节点数据

    LayUi框架中树形组件tree官方还在持续完善中,目前最新版本为v2.5.5 官方树形组件目前还不支持懒加载方式,之前我修改一版是通过reload重载实例方法填充子节点数据方式,因为递归页面元素时存 ...

  6. struts2是如何加载相关的package元素节点信息的

    这不是一篇纯技术文章,而是一篇分享我个人在前后端分离路上收获的点点滴滴的文章,以此来为准备尝试前后端分离或者想了解前后端分离的童鞋做一个大体的讲解. 上一家公司是家小公司,做了一年的全栈开发,对前端的 ...

  7. 嵌入式linux加载引导内核和根文件系统的方法

    总体来说,嵌入式Linux内核和根文件的引导与PC机差不多.嵌入式linux内核和根文件系统可以存放在各种可能的存储设备中,一般情况下我 们将内核和根文件系统直接烧入到Flash中(包括NOR和NAN ...

  8. struts2设置加载非默认路径的struts.xml文件解决方案

    方案一:   首先我们要明白struts2加载配置文件都是从它自己的jar包和\WEB-INF\classes两个默认的位置加载的,如果你想改变strusts2中的文件的默认加载路径,可以在web项目 ...

  9. 图片onerror事件,为图片加载指定默认图片

    为图片指定加载失败时显示默认图片,js输出的img对象,onerror是事件,不是属性,所以这样写是不起作用的: var img = $(document.createElement("IM ...

随机推荐

  1. Bing必应地图中国API - 添加实时交通信息

    Bing必应地图中国API - 添加实时交通信息 2011-05-24 14:44:58|  分类: Bing&Google|字号 订阅     2009年4月23日,微软必应地图中国API新 ...

  2. bzoj1778

    高斯消元+矩阵的逆 来自popoqqq大神 求矩阵的逆:把I-T放在左边,P/Q*S放在右边,这样就形成了一个n*2n的矩阵,然后把左边高斯消元,右边就是求完逆的矩阵,其实就是ans,矩阵的逆跟乘法逆 ...

  3. bzoj3566

    3566: [SHOI2014]概率充电器 Time Limit: 40 Sec  Memory Limit: 256 MBSubmit: 982  Solved: 422[Submit][Statu ...

  4. emma中文显示乱码问题解决(ubutnu)

    vim -/.emma/emmarc 找到  db_encoding=latin1 改为  db_encoding=utf8  然后重新运行emma,此时发现还是乱码,不要着急,在执行所有的sql语句 ...

  5. 【FFmpeg】FFmpeg常用基本命令(转载)

    转自:http://www.cnblogs.com/dwdxdy/p/3240167.html 1.分离视频音频流 ffmpeg -i input_file -vcodec copy -an outp ...

  6. bzoj3450 Easy(概率期望dp)

    3450: Tyvj1952 Easy Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 876  Solved: 648[Submit][Status] ...

  7. C语言小项目-基于TCP协议和SOCKET编程的网络通信系统

    1.1 功能结构图   网络通信系统一共由4个模块组成,分别是点对点客户端.点对点服务端.服务器中转服务端.服务器中转客户端.这4个模块是成对使用的,点对点客户端和点对点服务端一起使用,服务器中转服务 ...

  8. 贪心+构造 Codeforces Round #277 (Div. 2) C. Palindrome Transformation

    题目传送门 /* 贪心+构造:因为是对称的,可以全都左一半考虑,过程很简单,但是能想到就很难了 */ /************************************************ ...

  9. Android 性能优化(8)网络优化( 4)Optimizing App-Initiated Network Use

    Optimizing App-Initiated Network Use This lesson teaches you to Batch and Schedule Network Requests ...

  10. [ SPOJ PT07J ] Query on a tree III

    \(\\\) Description 其实这题才是正版的 Qtree3...... 给定 \(n\) 个点,以 \(1\) 号节点为根的树,点有点权. \(m\) 次询问 以 \(x\) 为根的子树内 ...