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实现全选、全不选以及单选功能
Mar 23 jQuery
jQuery插件之validation插件
Mar 29 jQuery
jquery实现下拉菜单的手风琴效果
Jul 23 jQuery
jQuery实现全选、反选和不选功能
Aug 16 jQuery
jQuery实现的弹幕效果完整实例
Sep 06 jQuery
jquery实现企业定位式导航效果
Jan 01 jQuery
jquery在启动页面时,自动加载数据的实例
Jan 22 jQuery
jQuery实现的简单图片轮播效果完整示例
Feb 08 jQuery
jQuery length 和 size()区别总结
Apr 26 jQuery
jQuery each和js forEach用法比较
Feb 27 jQuery
JQuery事件委托原理与用法实例分析
May 13 jQuery
jquery轻量级数字动画插件countUp.js使用详解
Oct 17 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基础知识:函数基础知识
2006/12/13 PHP
56.com视频采集接口程序(PHP)
2007/09/22 PHP
PHP缓存技术的多种方法小结
2012/08/14 PHP
php实现httpRequest的方法
2015/03/13 PHP
Symfony2学习笔记之模板用法详解
2016/03/17 PHP
Yii框架小部件(Widgets)用法实例详解
2020/05/15 PHP
JavaScript静态的动态
2006/09/18 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
javascript先序遍历DOM树的方法
2016/02/27 Javascript
EasyUI布局 高度自适应
2016/06/04 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
jQuery插件扩展测试实例
2016/06/21 Javascript
JS对大量数据进行多重过滤的方法
2016/11/04 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
Bootstrap table 定制提示语的加载过程
2017/02/20 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
js插件实现图片滑动验证码
2020/09/29 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
Python的time模块中的常用方法整理
2015/06/18 Python
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
Python List cmp()知识点总结
2019/02/18 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
python urllib爬虫模块使用解析
2019/09/05 Python
Python列表元素常见操作简单示例
2019/10/25 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
使用Python操作ArangoDB的方法步骤
2020/02/02 Python
tensorflow之tf.record实现存浮点数数组
2020/02/17 Python
玩具反斗城西班牙网上商城:ToysRUs西班牙
2017/01/19 全球购物
好的自荐信的要求
2013/10/30 职场文书
关于环保的标语
2014/06/13 职场文书
思想政治表现评语
2015/01/04 职场文书
网吧管理制度范本
2015/08/05 职场文书
python实现过滤敏感词
2021/05/08 Python
Pygame Event事件模块的详细示例
2021/11/17 Python