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日程管理控件glDatePicker用法详解
Mar 29 jQuery
jQuery+pjax简单示例汇总
Apr 21 jQuery
jQuery序列化后的表单值转换成Json
Jun 16 jQuery
jQuery实现一个简单的验证码功能
Jun 26 jQuery
使用jQuery实现简单的tab框实例
Aug 22 jQuery
jQuery选择器之子元素选择器详解
Sep 18 jQuery
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
Oct 13 jQuery
基于jquery trigger函数无法触发a标签的两种解决方法
Jan 06 jQuery
jQuery实现table表格checkbox全选的方法分析
Jul 04 jQuery
jquery使用FormData实现异步上传文件
Oct 25 jQuery
jQuery利用FormData上传文件实现批量上传
Dec 04 jQuery
jquery传参及获取方式(两种方式)
Feb 13 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
phpMyAdmin自动登录和取消自动登录的配置方法
2014/05/12 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
2015/04/22 PHP
手把手编写PHP框架 深入了解MVC运行流程
2016/09/19 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
js中传递特殊字符(+,&amp;)的方法
2014/01/16 Javascript
JS实现关键字搜索时的相关下拉字段效果
2014/08/05 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
深入解析JavaScript中的arguments对象
2016/06/12 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
ES6学习教程之Promise用法详解
2020/11/22 Javascript
[00:32]10月24、25日 辉夜杯外卡赛附加赛开赛!
2015/10/23 DOTA
python冒泡排序算法的实现代码
2013/11/21 Python
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
django1.8使用表单上传文件的实现方法
2016/11/04 Python
详解Django 中是否使用时区的区别
2018/06/14 Python
使用Python实现一个栈判断括号是否平衡
2018/08/23 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
Python实战购物车项目的实现参考
2019/02/20 Python
树莓派用python中的OpenCV输出USB摄像头画面
2019/06/22 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
win10安装python3.6的常见问题
2020/07/01 Python
Python字符串三种格式化输出
2020/09/17 Python
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
豪华床上用品 :Jennifer Adams
2019/09/15 全球购物
应届生污水处理求职信
2013/11/06 职场文书
婚庆公司计划书
2014/09/15 职场文书
政协会议宣传标语
2014/10/09 职场文书
2014年体育部工作总结
2014/11/13 职场文书
史上最牛辞职信
2015/05/13 职场文书
民政局未婚证明
2015/06/15 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
教你使用Python获取QQ音乐某个歌手的歌单
2022/04/03 Python