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插件imgAreaSelect基础讲解
May 26 jQuery
jquery Ajax实现Select动态添加数据
Jun 08 jQuery
jQuery简单绑定单个事件的方法示例
Jun 10 jQuery
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
Oct 19 jQuery
jQuery+SpringMVC中的复选框选择与传值实例
Jan 08 jQuery
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
Jan 21 jQuery
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
Jan 25 jQuery
jQuery 实现倒计时天,时,分,秒功能
Jul 31 jQuery
jQuery实现的点击显示隐藏下拉菜单功能完整示例
May 17 jQuery
Jquery 动态添加元素并添加点击事件实现过程解析
Oct 12 jQuery
jquery实现的放大镜效果示例
Feb 24 jQuery
jQuery实现购物车全功能
Jan 11 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中取得image按钮传递的name值
2006/10/09 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
2009/08/05 PHP
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
php unlink()函数使用教程
2018/07/12 PHP
Javascript中产生固定结果的函数优化技巧
2013/01/16 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
JS 打印功能代码可实现打印预览、打印设置等
2014/10/31 Javascript
JavaScript替换当前页面的方法
2015/04/03 Javascript
jQuery Easyui 验证两次密码输入是否相等
2016/05/13 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
使用store来优化React组件的方法
2017/10/23 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
Vue自定义指令实现checkbox全选功能的方法
2018/02/28 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
Vue Extends 扩展选项用法完整实例
2019/09/17 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
vue 中this.$set 动态绑定数据的案例讲解
2021/01/29 Vue.js
Python中optionParser模块的使用方法实例教程
2014/08/29 Python
python的类方法和静态方法
2014/12/13 Python
Python简单生成8位随机密码的方法
2017/05/24 Python
python自动化测试之异常及日志操作实例分析
2019/11/09 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
2020/03/09 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
2020/04/16 Python
利用pyecharts读取csv并进行数据统计可视化的实现
2020/04/17 Python
python中的插入排序的简单用法
2021/01/19 Python
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
商场消防管理制度
2014/01/12 职场文书
合伙经营协议书范本
2014/04/18 职场文书
坎儿井导游词
2015/02/09 职场文书
js实现上传图片到服务器
2021/04/11 Javascript
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA