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 相关文章推荐
BootStrap中jQuery插件Carousel实现轮播广告效果
Mar 27 jQuery
jQuery修改DOM结构_动力节点Java学院整理
Jul 05 jQuery
使用jquery的jsonp如何发起跨域请求及其原理详解
Aug 17 jQuery
手写简单的jQuery雪花飘落效果实例
Apr 22 jQuery
基于jQuery实现无缝轮播与左右点击效果
May 13 jQuery
jQuery模拟12306城市选择框功能简单实现方法示例
Aug 13 jQuery
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
Jan 18 jQuery
JQuery常见节点操作实例分析
May 15 jQuery
jQuery模拟html下拉多选框的原生实现方法示例
May 30 jQuery
jquery树形插件zTree高级使用详解
Aug 16 jQuery
jQuery实现轮播图效果
Nov 26 jQuery
JQuery实现折叠式菜单的详细代码
Jun 03 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
DISCUZ 论坛管理员密码忘记的解决方法
2009/05/14 PHP
PHP二维数组排序简单实现方法
2016/02/14 PHP
浅谈php和js中json的编码和解码
2016/10/24 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
WEB高性能开发之疯狂的HTML压缩
2010/06/19 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
在myeclipse中如何加入jquery代码提示功能
2014/06/03 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
完善的jquery处理机制
2016/02/21 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
原生js实现鼠标跟随效果
2017/02/28 Javascript
AngularJS实现的省市二级联动功能示例【可对选项实现增删】
2017/10/26 Javascript
bootstrap-table+treegrid实现树形表格
2019/07/26 Javascript
[49:05]OG vs Newbee 2019DOTA2国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
Python MySQL数据库连接池组件pymysqlpool详解
2017/07/07 Python
使用python 打开文件并做匹配处理的实例
2019/01/02 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
python实现将json多行数据传入到mysql中使用
2019/12/31 Python
Python正则表达式高级使用方法汇总
2020/06/18 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
详解canvas.toDataURL()报错的解决方案全都在这了
2020/03/31 HTML / CSS
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
Wiggle新西兰:自行车、跑步、游泳
2020/05/06 全球购物
岗位职责的定义
2013/11/10 职场文书
庆元旦文艺演出主持词
2014/03/27 职场文书
办公室打字员岗位职责
2014/04/16 职场文书
工地安全生产标语
2014/06/06 职场文书
2014年家长学校工作总结
2014/11/20 职场文书
开学典礼致辞
2015/07/29 职场文书
python 机器学习的标准化、归一化、正则化、离散化和白化
2021/04/16 Python
一篇文章带你了解Python和Java的正则表达式对比
2021/09/15 Python