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实现的动态进度条功能示例
May 25 jQuery
JQueryMiniUI按照时间进行查询的实现方法
Jun 07 jQuery
Vue.js列表渲染绑定jQuery插件的正确姿势
Jun 29 jQuery
jQuery实现拼图小游戏(实例讲解)
Jul 24 jQuery
jQuery实现全选、反选和不选功能
Aug 16 jQuery
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
Oct 19 jQuery
jQuery实现checkbox的简单操作
Nov 18 jQuery
jQuery实现动态控制页面元素的方法分析
Dec 20 jQuery
jquery引入外部CDN 加载失败则引入本地jq库
May 23 jQuery
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
Jun 14 jQuery
jquery实现的简单轮播图功能【适合新手】
Aug 17 jQuery
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
May 19 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
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
PHP无限分类(树形类)
2013/09/28 PHP
用PHP来计算某个目录大小的方法
2014/04/01 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
通过Email发送PHP错误的方法
2015/07/20 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
表单验证的完整应用案例探讨
2013/03/29 Javascript
jQuery :first选择器使用介绍
2013/08/09 Javascript
纯js实现遮罩层效果原理分析
2014/05/27 Javascript
纯JavaScript实现获取onclick、onchange等事件的值
2014/12/29 Javascript
删除javascript所创建子节点的方法
2015/05/21 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
jQuery、layer实现弹出层的打开、关闭功能
2017/06/28 jQuery
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
js指定日期增加指定月份的实现方法
2018/12/19 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
python生成随机验证码(中文验证码)示例
2014/04/03 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
Python3 列表,数组,矩阵的相互转换的方法示例
2019/08/05 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
numpy库reshape用法详解
2020/04/19 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
地球鞋加拿大官网:Earth Shoes Canada
2020/11/17 全球购物
财务出纳岗位职责
2014/02/03 职场文书
社区义诊活动总结
2014/04/30 职场文书
家具商场的活动方案
2014/08/16 职场文书
工会经费申请报告
2015/05/15 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android
Redis基本数据类型String常用操作命令
2022/06/01 Redis