一,扩展要求

真的是没有对比就没有伤害。如果只是单纯的按照ztree的api去异步加载树结构,那么就会使左图那个样子。
特点:1,所有的节点前面均会有radio(因为设置的是radio:"all"属性)。
2,只有在点击节点前面的“加减号”才可以展开或者是收起子节点。
于是问题出现了。1,我们想要在点击节点的时候,而不是一定要去点击“加减号”的时候子节点展开或者收起。
2,我们想要在特点的节点前面加上特定的选框,而不是在所有节点前面都加。

二,解决方案

1,点击节点也可以展开或者收起子节点。
var setting = {
async:{
       autoParam:["parentId"],  
       enable:true, 
       type:"post",  
       url:getUrl,
       dataFilter:filter,
   },
check : {
chkStyle: "radio",
enable: false,
chkboxType : { "Y" : "s", "N" : "ps" },
radioType : "level"
},
view: {
dblClickExpand: false,
addDiyDom:addDiyDom
},
data : {
key : {
name : "unitName"
},
simpleData : {
enable : true,
idKey : "id",
pIdKey : "parentId",
rootPId : 0
}
},
callback : {
   beforeAsync : ztreeBeforeAsync,
   onAsyncSuccess : ztreeOnAsyncSuccess,
    onClick:ztreeOnAsyncSuccess
}
};
只需要添加一个点击事件的回调函数就好了,且就调用onAsyncSuccess 参数所设置的方法就好了。只不过有些需要注意的地方。
1,添加点击事件加载之后,ztreeOnAsyncSuccess这个方法会被调用两次,一次是点击事件调用,还有一次应该就是ztree框架封装好的异步加载调用。所以在方法中需要限制一下,如果是框架封装好的调用,他的效果是如果发现已经有子节点了,则不会重复加载,但是onclick事件也在调用,就需要我们注意了,如果每次都直接是取子节点然后加载,那么每次点击,每次加载,就会有一堆重复的子节点被加载上来。所以需要在方法中限定,如果发现有子节点了,则展开就好,没有的话,再去后台取数据。还有就是如果发现子节点是展开的,那么就收起,如果不是,则展开。保证一次点击展开子节点,再次点击收起子节点。
2,在特点的节点前面加上特点的选框。那么在setting中radioType设置成“all”或者“level”已经作用不大了。关键的设置是 view中的addDiyDom:addDiyDom设置
这个设置就是让你对特定的节点做出特殊的处理。
主要注意的是,如果你的选框是后加上的,那么你对节点的事件也需要重新绑定,重新按照需求写。否则也只是空加了一个选框 而已。
前台小白默默的把我的代码贴上来吧。
<pre name="code" class="javascript">function addDiyDom(treeId, treeNode){// 只在社区节点前面添加radio选框var unitCode = treeNode.unitCode;if(unitCode.length != 12){return ;}var aObj = $("#" + treeNode.tId + "_a");var editStr = "<input type='radio' name = 'unitName' class='input-radio' id='radio_" +treeNode.id+"_"+treeNode.pId+"'></input>";aObj.before(editStr);var btn = $("#radio_"+treeNode.id+"_"+treeNode.pId);if (btn) {btn.bind("click", function() {nodeCheck(treeNode,btn);});}};
function nodeCheck(treeNode,btn){if(btn.attr("checked"){// TODO:}else{// TODO:}
}

ZTree学习(三),ztree树扩展相关推荐

  1. 6.easyui+ztree案例:zTree树

    做的就是西部区域面板中的树形导航图. Easyui中也有树,但是这个树不够强大. zTree性能非常好,功能强大. 介绍: l  什么是zTree呢? zTree是一个依靠jQuery实现的多功能&q ...

  2. ztree 自定义参数_zTree树插件使用方法及自定义控件实践_蓝戒的博客

    zTree简介: zTree 是一个依靠 jQuery 实现的多功能 "树插件".优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. 实践版本:zTree-verso ...

  3. zTree 优秀的jquery树插件

    zTree 优秀的jquery树插件,文档详细,渲染快 使用方法: 1.引用zTree的js和css文件 <link href="~/Content/zTree_v3/css/zTre ...

  4. layui ztree 实现下拉树

    完整代码下载 JS 代码 //id div 的id,isMultiple 是否多选,chkboxType 多选框类型{"Y": "ps", "N&qu ...

  5. zTree开发下拉树

    最近,因为工作需要一个树形下拉框的组件,经过查资料一般有两种的实现方法.其一,就是使用zTree实现:其二,就是使用easyUI实现.因为公司的前端不是使用easyUI设计的,故这里我选择了zTree ...

  6. linux uart寄存器 代替 printk,Linux驱动学习之设备树(设备树下的LED驱动实验),...

    Linux驱动学习之设备树(设备树下的LED驱动实验), 概念 Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离.相当于从驱动代码分离出来的配置文件,比如串口的波特率通过设 ...

  7. 机器学习(三)树模型

    机器学习(一)LR 机器学习(二)SVM 机器学习(三)树模型 机器学习(四)聚类 机器学习(三)树模型 目录 二.树模型 1.ID3 2.C4.5 3.CART树 (1)算法步骤 (2)举例 (3) ...

  8. 实至名归!ACM宣布深度学习三巨头共同获得图灵奖

    昨日晚间,ACM(国际计算机学会)宣布,有"深度学习三巨头"之称的Yoshua Bengio.Yann LeCun.Geoffrey Hinton共同获得了2018年的图灵奖,这是 ...

  9. es6学习笔记-字符串的扩展_v1.0_byKL

    es6学习笔记-字符串的扩展_v1.0 字符的Unicode表示法 JavaScript 允许使用uxxxx的形式表示一个字符,但在 ES6 之前,单个码点仅支持u0000到uFFFF,超出该范围的必 ...

最新文章

  1. [Python]小甲鱼Python视频第048课(魔法方法:迭代器) )课后题及参考解答
  2. Hack for Cloud Beginner微软黑客松大赛
  3. mysql 优化 修复原理_mysql下表的修复与优化
  4. python 储蓄计划_365天储蓄计划表
  5. Linux 终端显示 Git 当前所在分支 1
  6. 认识以及安装redis
  7. python+django+vue某小区物业管理系统
  8. 数据库可视化工具(SQLyog安装教程)
  9. PMBOK or PRINCE2
  10. golang六个常用的web 框架
  11. VM下安装ubuntu教程
  12. Python代码格式化工具autopep8安装及使用极简版
  13. STM32学习笔记--I2C
  14. matlab引用csv文件,如何用MATLAB读取csv文件
  15. 职场上35岁以上的人都去哪了?
  16. 为黑客打工能挣多少?月薪最高达2万美元
  17. 【STM32】SPI的基本原理、库函数(SPI一般步骤)
  18. iview 必填select加filterable可填写,边框被挡住
  19. Win 10操作系统与艾字节大数据的密切关系
  20. Android使用Bmob移动后端云Restful API需要注意的问题

热门文章

  1. 【Linux】wget命令的使用
  2. gunicorn的作用
  3. 使用 ab 对网站进行压力测试
  4. Spring Boot入门教程(四十二):微信支付集成-H5支付
  5. 分析hanoi塔代码
  6. C++ 文件操作(CFile类)
  7. java indexeddb_indexedDB 基本使用
  8. Flutter 跨平台框架中的 Widgets,你了解多少?
  9. java项目如何判断一个请求是否为AJAX请求
  10. 【AI4Code】CodeX:《Evaluating Large Language Models Trained on Code》(OpenAI)