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 校验中国身份证号码实例详解
Apr 11 jQuery
jQuery使用正则验证15/18身份证的方法示例
Apr 27 jQuery
js和jquery中获取非行间样式
May 05 jQuery
简单实现jQuery弹幕效果
May 06 jQuery
各种选择框jQuery的选中方法(实例讲解)
Jun 27 jQuery
jQuery实现点击关注和取消功能
Jul 03 jQuery
深入研究jQuery图片懒加载 lazyload.js使用方法
Aug 16 jQuery
jQuery实现菜单的显示和隐藏功能示例
Jul 24 jQuery
通过jquery的ajax请求本地的json文件方法
Aug 08 jQuery
JQuery Ajax执行跨域请求数据的解决方案
Dec 10 jQuery
js/jQuery实现全选效果
Jun 17 jQuery
jQuery是用来干什么的 jquery其实就是一个js框架
Feb 04 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计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
PHP实现Session入库/存入redis的方法
2017/05/04 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
Prototype使用指南之hash.js
2007/01/10 Javascript
ajax上传时参数提交不更新等相关问题
2012/12/11 Javascript
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
2015/10/16 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
原生js实现jquery函数animate()动画效果的简单实例
2016/08/21 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
2017/01/04 Javascript
AngularJS表格添加序号的方法
2017/03/03 Javascript
Vue.js devtool插件安装后无法使用的解决办法
2017/11/27 Javascript
vue、react等单页面项目应该这样子部署到服务器
2018/01/03 Javascript
Vue实现导出excel表格功能
2018/03/30 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
Vue源码探究之状态初始化
2018/11/14 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
vue项目中极验验证的使用代码示例
2019/12/03 Javascript
九步学会Python装饰器
2015/05/09 Python
tensorflow学习教程之文本分类详析
2018/08/07 Python
详解Python3中ceil()函数用法
2019/02/19 Python
python3 打印输出字典中特定的某个key的方法示例
2019/07/06 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
使用canvas一步步实现图片打码功能的方法
2019/06/17 HTML / CSS
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
2014年开学第一课活动方案
2014/03/06 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
护士医德医风自我评价
2014/09/15 职场文书
2014教师评职称工作总结
2014/11/10 职场文书
学生检讨书
2015/01/27 职场文书
2016学习依法治国心得体会
2016/01/15 职场文书
工作违纪的检讨书范文
2019/07/09 职场文书
Nginx配置SSL证书出错解决方案
2021/03/31 Servers