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鼠标移动图片上实现放大效果
Jun 25 jQuery
jQuery实现点击关注和取消功能
Jul 03 jQuery
jQuery Validate格式验证功能实例代码(包括重名验证)
Jul 18 jQuery
jquery ztree实现右键收藏功能
Nov 20 jQuery
jQuery实现定时隐藏对话框的方法分析
Feb 12 jQuery
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
jQuery实现点击图标div循环放大缩小功能
Sep 30 jQuery
在vue项目中使用Jquery-contextmenu插件的步骤讲解
Jan 27 jQuery
jQuery.parseJSON()函数详解
Feb 28 jQuery
Easyui 去除jquery-easui tab页div自带滚动条的方法
May 10 jQuery
jquery简易手风琴插件的封装
Oct 13 jQuery
jquery插件懒加载的示例
Oct 24 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函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
2020/10/01 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
js 匿名调用实现代码
2009/06/19 Javascript
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
jquery随机展示头像代码
2011/12/21 Javascript
HTML页面滚动时获取离页面顶部的距离2种实现方法
2013/09/05 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
用js来获取上传的文件名纯粹是为了美化而用
2013/10/23 Javascript
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
vue项目使用微信公众号支付总结及遇到的坑
2018/10/23 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
一文了解Vue中的nextTick
2019/05/06 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
[14:50]2018DOTA2亚洲邀请赛开幕式
2018/04/03 DOTA
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
浅谈python中的数字类型与处理工具
2017/08/02 Python
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
Python编程之Re模块下的函数介绍
2017/10/28 Python
python代码编写计算器小程序
2020/03/30 Python
python实现计算器功能
2019/10/31 Python
pytorch实现查看当前学习率
2020/06/24 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
详解css3 object-fit属性
2018/07/27 HTML / CSS
外企财务年会演讲稿
2014/01/03 职场文书
内刊编辑求职自荐书范文
2014/02/19 职场文书
大学信息公开实施方案
2014/03/09 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
2014年党员发展工作总结
2014/12/02 职场文书
幼儿园端午节活动总结
2015/05/05 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书
2019思想汇报范文
2019/05/21 职场文书