需求:页面加载完成之后,默认选中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. EasyUI Form表单提交

    转自:https://www.cnblogs.com/net5x/articles/4576926.html Form(表单) 使用$.fn.form.defaults重写默认值对象 form提供了各 ...

  2. C#面向过程之冒泡排序

    //定义一个数组,准备冒泡排序 ,,-,,,,-,}; //定义一个中间变量 ; //n个数字比较需要进行n-1次比较 ; j < arr.Length - - i; j++) { //每一趟的 ...

  3. c++ class does not name a type (转载)

    转载:http://blog.csdn.net/typename/article/details/7173550 declare class does not name a type 出现这个编译错误 ...

  4. E20170606-hm

    pipeline   n. 管道; 输油管道; 渠道,传递途径; dump   vt. 倾倒; 倾销; 丢下,卸下; 摆脱,扔弃;   n. 垃圾场; 仓库; 无秩序地累积;

  5. CSS实现居中的方式

    在介绍居中方式之前,简单介绍一下行内元素和块级元素. 行内元素 和其他元素都在同一行 高,行高及外边距和内边距部分可以改变 宽度只与内容有关 行内元素只能容纳文本或者其他行内元素 常用内联元素:a,i ...

  6. [C陷阱和缺陷] 第5章 库函数

      有关库函数的使用,我们能给出的最好建议是尽量使用系统头文件,当然也可以自己造轮子,随个人喜好.本章将探讨某些常用的库函数,以及编程者在使用它们的过程中可能出错之处.   5.1 返回整数的getc ...

  7. 递推DP UVA 1424 Salesmen

    题目传送门 /* 题意:给定包含n个点的无向图和一个长度为L的序列,修改尽量少的点使得相邻的数字相同或连通 DP:状态转移方程:dp[i][j] = min (dp[i][j], dp[i-1][k] ...

  8. ViewPager(4)用viewpager实现splash view

    1,示例 2,代码 SplashMain.java import android.os.Bundle; import android.support.v4.app.Fragment; import a ...

  9. D. Fedor and coupons 二分暴力

    http://codeforces.com/contest/754/problem/D 给出n条线段,选出k条,使得他们的公共部分长度最大. 公共部分的长度,可以二分出来,为val.那么怎么判断有k条 ...

  10. EasyUI系列学习(七)-Linkbutton(按钮)

    一.加载组件 1.使用class加载 <a href="#" class="easyui-linkbutton">按钮</a> 2.使用 ...