jQuery zTree树插件动态加载实例代码


Posted in jQuery onMay 11, 2017

需求:

由于项目中家谱图数据量超大,而一般加载方式是通过,页面加载时 zTree.init方法进行数据加载,将所有数据一次性加载到页面中。而在项目中家谱级别又非常广而深,成千上万级,因此一次加载,完全加载不出来。于是需要进行优化为动态加载(增量加载)的方式,以便数据加载,提高体验度。

解决断路:

这应该好办,只要找到父节点单击事件,然后进行数据加载,结点附加即可。时间紧,任务重,完全没给研究的时间。只能硬着上,随便搜索一个“zTree动态加载”,出是出来了,标题也对,可里面的代码根本没找到添加结点一说……一边是需求催,一边是没找到类似。无语……对啊,不是有官网,于是把所有api函数浏览一遍,终于发现一个叫addNodes的函数。喜!

控件代码

<div class="UserTree">
  <ul id="treeDemo" class="ztree"></ul>
</div>

脚本代码(实现结点展开、单击事件时进行动态加载):

<script>
  var zNodes;
  var zTree;
  $(function () {
    $.ajax({
      cache: true,
      type: "get",
      url: "/User/NextLeve",
      async: false,
      success: function (data) {
        zNodes = data;
      },
      error: function (data) {
        alert("error");
      }
    });
    zTree = ZTreeCustom.init($("#treeDemo"), setting, zNodes);
    zTree.expandAll(false);
  })
  var setting = {
    view: {
      nameIsHTML: true
    },
    data: {
      simpleData: {
        enable: true
      },
      keep: {
        parent: true
      }
    },
    open: false,
    callback: {
      onClick: nodeClick,
      onExpand: function (event, treeId, treeNode) {
        addSubNode(treeNode);
      }
    }
  };
  function showIconForTree(treeId, treeNode) {
    return !treeNode.isParent;
  };
  function searchM() {
    var username = $("#txtName").val()
  }
  function nodeClick(event, treeId, treeNode, clickFlag) {
    addSubNode(treeNode);
  }
  function addSubNode(treeNode) {
    if (!treeNode.isParent) return;
    var s = treeNode.children;
    if (s != undefined)
      return;
    $.ajax({
      cache: true,
      type: "get",
      url: "/User/NextLeve",
      data: { userId: treeNode.id },
      async: true,
      success: function (data) {
        zTree.addNodes(treeNode, data);
      },
      error: function (data) {
        alert("error");
      }
    });
  }
</script>

其中后端请求:

其中数据来源为请求路径“/User/NextLeve?userId=xxx”,为返回如下结构的列表的json数据(即List<UserNode>类型的.ToJson()数据),其中userId可为,为空时默认取当前登录用户:

public class UserNode
{
  public long id { get; set; }
  public long pId { get; set; }
  public string name { get; set; }
  public bool open { get; set; }
  public bool isParent { get; set; }
  public string icon { get; set; }
}

效果,则实现为单击父结点/展开父结点时动态加载子结点。

以上所述是小编给大家介绍的jQuery zTree树插件动态加载效果实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
jQuery中clone()函数实现表单中增加和减少输入项
May 13 jQuery
jQuery正则验证注册页面经典实例
Jun 10 jQuery
jQuery实现拼图小游戏(实例讲解)
Jul 24 jQuery
jquery在vue脚手架中的使用方式示例
Aug 29 jQuery
jQuery 点击获取验证码按钮及倒计时功能
Sep 20 jQuery
jquery拖拽自动排序插件使用方法详解
Jul 20 jQuery
jQuery访问json文件中数据的方法示例
Jan 28 jQuery
详解jQuery-each()方法
Mar 13 jQuery
jquery实现的分页显示功能示例
Aug 23 jQuery
Jquery让form表单异步提交代码实现
Nov 14 jQuery
jQuery实现简易QQ聊天框
Feb 10 jQuery
用jQuery实现抽奖程序
Apr 12 jQuery
jQuery实现的简单在线计算器功能
May 11 #jQuery
jQuery+PHP+Mysql实现抽奖程序
Apr 12 #jQuery
JQuery实现定时刷新功能代码
May 09 #jQuery
jQuery插件开发发送短信倒计时功能代码
May 09 #jQuery
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
May 08 #jQuery
jquery平滑滚动到顶部插件使用详解
May 08 #jQuery
jQuery实现select下拉框获取当前选中文本、值、索引
May 08 #jQuery
You might like
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
浅谈php自定义错误日志
2015/02/13 PHP
php 数组元素快速去重
2017/05/05 PHP
PHP PDOStatement::bindParam讲解
2019/01/30 PHP
PHP之认识(二)关于Traits的用法详解
2019/04/11 PHP
JavaScript和ActionScript的交互实现代码
2010/08/01 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
2016/06/17 Javascript
js实现文字超出部分用省略号代替实例代码
2016/09/01 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
2016/10/20 Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
2016/12/26 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
layui扩展上传组件模拟进度条的方法
2019/09/23 Javascript
JS正则表达式验证密码强度
2020/03/18 Javascript
[04:16]DOTA2全国高校联赛16强抽签
2018/05/02 DOTA
Python深入学习之内存管理
2014/08/31 Python
Python爬取成语接龙类网站
2018/10/19 Python
Python高级特性与几种函数的讲解
2019/03/08 Python
使用Python画股票的K线图的方法步骤
2019/06/28 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
Django使用中间件解决前后端同源策略问题
2019/09/02 Python
python 使用递归实现打印一个数字的每一位示例
2020/02/27 Python
Python数据可视化实现漏斗图过程图解
2020/07/20 Python
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
Mio Skincare美国官网:身体紧致及孕期身体护理
2017/03/05 全球购物
巴西宠物商店:Cobasi
2019/04/19 全球购物
美国在线购买空气净化器、除湿器、加湿器网站:AllergyBuyersClub
2021/03/16 全球购物
应届毕业生就业自荐信
2013/10/26 职场文书
行政副总岗位职责
2014/02/23 职场文书
财务管理职业生涯规划书
2014/02/26 职场文书
学生不参加考试检讨书
2015/02/19 职场文书
2015年店长个人工作总结
2015/10/23 职场文书