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实现的弹幕效果完整实例
Sep 06 jQuery
jQuery.Sumoselect插件实现下拉复选框效果
Nov 09 jQuery
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
Apr 17 jQuery
jQuery中each遍历的三种方法实例分析
Sep 07 jQuery
利用jquery和BootStrap实现动态滚动条效果
Dec 03 jQuery
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
Jan 18 jQuery
jQuery选择器之层次选择器用法实例分析
Feb 19 jQuery
使用jquery的cookie实现登录页记住用户名和密码的方法
Mar 13 jQuery
jQuery动态生成的元素绑定事件操作实例分析
May 04 jQuery
JQuery样式操作、click事件以及索引值-选项卡应用示例
May 14 jQuery
jQuery Raty星级评分插件使用方法实例分析
Nov 25 jQuery
jQuery实现B2B网站后台管理系统侧导航
Jul 08 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实现WEB动态网页静态
2006/10/09 PHP
基于php无限分类的深入理解
2013/06/02 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
2014/01/22 PHP
php实现邮件发送并带有附件
2014/01/24 PHP
PHP产生不重复随机数的5个方法总结
2014/11/12 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
js限制文本框输入长度两种限制方式(长度、字节数)
2012/12/19 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
特殊情况下如何获取span里面的值
2014/05/20 Javascript
JavaScript基础函数整理汇总
2015/01/30 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
jQuery实现购物车表单自动结算效果实例
2015/08/10 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
设置jquery UI 控件的大小方法
2016/12/12 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
详解基于angular-cli配置代理解决跨域请求问题
2017/07/05 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
微信小程序页面间传值与页面取值操作实例分析
2019/04/30 Javascript
JavaScript箭头函数中的this详解
2019/06/19 Javascript
python getopt 参数处理小示例
2009/06/09 Python
部署Python的框架下的web app的详细教程
2015/04/30 Python
python 上下文管理器使用方法小结
2017/10/10 Python
python 自动批量打开网页的示例
2019/02/21 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
python打包成so文件过程解析
2019/09/28 Python
sklearn的predict_proba使用说明
2020/06/28 Python
python网络爬虫实现发送短信验证码的方法
2021/02/25 Python
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
Hobbs官方网站:英国奢华女性时尚服装
2020/02/22 全球购物
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
银行介绍信范文
2014/01/10 职场文书
工程主管竞聘书
2015/09/15 职场文书
vue3使用vue-router的完整步骤记录
2021/06/20 Vue.js