有一棵树,我们只需要其中几个节点可以通过勾选前面checkbox来对其进行操作,且这个操作需要动态执行。应该如何实现呢?

==========》

面对这样一个需求,如果我们使用的是zTree树控件,那么将会变得非常地简单。

面对这样一个需求,如果我们使用的是zTree树控件,那么将会变得非常地简单。

1、引入ztree树相关的js文件

view sourceprint?
1.<link rel="stylesheet" href="../../../css/demo.css" type="text/css">
2.<link rel="stylesheet" href="../../../css/zTreeStyle/zTreeStyle.css" type="text/css">
3.<script type="text/javascript" src="../../../js/jquery-1.4.4.min.js"></script>
4.<script type="text/javascript" src="../../../js/jquery.ztree.core-3.5.js"></script>
5.<script type="text/javascript" src="../../../js/jquery.ztree.excheck-3.5.js"></script>

注意excheck.js文件是一定要引入的,要不然会导致节点前的checkbox无法显示和操作。

2、默认设置每一个节点的nocheck属性值为true

nocheck表示无checkbox选择框,属性值设置为true,表示不会显示节点前面的checkbox选择框。所以需要我们在提供节点数据给zTree树控件之前设置好每一个节点的nocheck值为true,示例数据形如:

view sourceprint?
01.//ztree用于初始化的静态数据       
02.var zNodes = [
03.{ id: 1, pId: 0, name: "随意勾选 1", nocheck: true },
04.{ id: 11, pId: 1, name: "随意勾选 1-1", nocheck: true },
05.{ id: 111, pId: 11, name: "无 checkbox 1-1-1", nocheck: true },
06.{ id: 112, pId: 11, name: "随意勾选 1-1-2", nocheck: true },
07.{ id: 12, pId: 1, name: "无 checkbox 1-2", nocheck: true },
08.{ id: 2, pId: 0, name: "随意勾选 2", nocheck: true },
09.];

3、动态设置节点前显示checkbox

想要让某个节点显示checkbox选择框,就必须要更新其nocheck属性值为false即可。核心方法如下所示:

view sourceprint?
01.//过滤节点的机制 直接return node表示不做任何过滤
02.function filter(node) {
03.return node;
04.}
05. 
06.///动态设置zTree的所有节点有checkbox
07.function DynamicUpdateNodeCheck() {
08.var zTree = $.fn.zTree.getZTreeObj("treeDemo");
09.//根据过滤机制获得zTree的所有节点           
10.var nodes = zTree.getNodesByFilter(filter);
11.//遍历每一个节点然后动态更新nocheck属性值
12.for (var i = 0; i < nodes.length; i++) {
13.var node = nodes[i];
14.node.nocheck = false//表示显示checkbox
15.zTree.updateNode(node);
16.}
17.}

完整示例代码如下所示:

[html] view plaincopy
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>ZTREE DEMO - 默认zTree几点无checkbox动态设置节点checkbox出现</title>
  5. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  6. <link rel="stylesheet" href="../../../css/demo.css" type="text/css">
  7. <link rel="stylesheet" href="../../../css/zTreeStyle/zTreeStyle.css" type="text/css">
  8. <script type="text/javascript" src="../../../js/jquery-1.4.4.min.js"></script>
  9. <script type="text/javascript" src="../../../js/jquery.ztree.core-3.5.js"></script>
  10. <script type="text/javascript" src="../../../js/jquery.ztree.excheck-3.5.js"></script>
  11. <script type="text/javascript">
  12. <!--
  13. var setting = {
  14. check: {
  15. enable: true,
  16. nocheckInherit: false
  17. },
  18. data: {
  19. simpleData: {
  20. enable: true
  21. }
  22. }
  23. };
  24. //ztree用于初始化的静态数据
  25. var zNodes = [
  26. { id: 1, pId: 0, name: "随意勾选 1", nocheck: true },
  27. { id: 11, pId: 1, name: "随意勾选 1-1", nocheck: true },
  28. { id: 111, pId: 11, name: "无 checkbox 1-1-1", nocheck: true },
  29. { id: 112, pId: 11, name: "随意勾选 1-1-2", nocheck: true },
  30. { id: 12, pId: 1, name: "无 checkbox 1-2", nocheck: true },
  31. { id: 2, pId: 0, name: "随意勾选 2", nocheck: true },
  32. ];
  33. //过滤节点的机制 直接return node表示不做任何过滤
  34. function filter(node) {
  35. return node;
  36. }
  37. ///动态设置zTree的所有节点有checkbox
  38. function DynamicUpdateNodeCheck() {
  39. var zTree = $.fn.zTree.getZTreeObj("treeDemo");
  40. //根据过滤机制获得zTree的所有节点
  41. var nodes = zTree.getNodesByFilter(filter);
  42. //遍历每一个节点然后动态更新nocheck属性值
  43. for (var i = 0; i < nodes.length; i++) {
  44. var node = nodes[i];
  45. node.nocheck = false; //表示显示checkbox
  46. zTree.updateNode(node);
  47. }
  48. }
  49. ///页面加载后初始化zTree数据且默认展开所有节点
  50. $(document).ready(function () {
  51. $.fn.zTree.init($("#treeDemo"), setting, zNodes).expandAll(true);
  52. });
  53. //-->
  54. </script>
  55. </head>
  56. <body>
  57. <h1>
  58. Checkbox nocheck 演示</h1>
  59. <div class="content_wrap">
  60. <div class="zTreeDemoBackground left">
  61. <ul id="treeDemo" class="ztree">
  62. </ul>
  63. </div>
  64. <div class="right">
  65. <p>
  66. 默认情况下设置任何节点无checkbox选择框,需要配置每一个节点的nocheck属性为true即可。</p>
  67. <p>
  68. zTree加载完成后通过updateNode(node)方法动态更新节点的nocheck属性为false,则节点将会显示checkbox。</p>
  69. <h3>
  70. STEP DAY</h3>
  71. <div>
  72. <input type="button" value="动态设置节点有checkbox" onclick="DynamicUpdateNodeCheck()" />
  73. </div>
  74. </div>
  75. </div>
  76. </body>
  77. </html>

Ztree 节点不可选相关推荐

  1. Ztree节点增加删除修改和Icheck的用法

    简介 官方文档:http://www.treejs.cn/v3/api.php zTree 是一个依靠 jQuery 实现的多功能 "树插件", 而且拥有较好的浏览器兼容性,有着丰 ...

  2. 浅谈ztree节点的增加和获取

    zTree 是一个依靠 jQuery 实现的多功能 "树插件".使用zTree会涉及到一些操作的逻辑,例如增加节点.删除节点等,下面我简要描述一下实际使用中的一点心得. zTree ...

  3. zTree节点增删改

    效果: 完成增删改,要注意几个关键点: 使用 编辑功能,必须设置 setting.edit 中的各个属性 使用 编辑功能的事件回调函数,必须设置 setting.callback.beforeRemo ...

  4. 给ztree节点赋值

    需求:点击节点的时候,给节点赋值,获取显示所点击的树节点里面的所有的信息. 图片.png 1:在弹出添加或者删除界面之前,给节点赋值,得到节点里面 的信息之后再做下一步逻辑. $("#toU ...

  5. ztree 自定义参数_Ztree节点前加上两个自定义按钮

    前言: 在我的权限管理模块遇到了给某些角色加权限的问题,这时就需要实现将每个模块做成树,在每个节点前加上预览和编辑的按钮,这样可以根据数据库的某个字段给每个角色赋权限. 必须必须吐槽的是,这部分的功能 ...

  6. ztree之获取当前节点的所有子节点

    在使用zTree插件实现树形图中,如果需要获取当前点击的父节点的子节点数的需求,可以使用treeNode.children获取子节点数据集合,使用length方法获取集合长度. 将当前节点的treeN ...

  7. 【ztree系列】节点的增删改

    一直以来,项目中用到的树形结构,都是用来读取显示数据.或者控制页面上其它内容的展示.对于树数据源的修改,一般由其它模块来完成,这样可以让功能单一化,不必让树的职责过多,但是却不得不再多加一步了.为了给 ...

  8. jQuery EasyUI ztree插件使用

    1.下载easyUI的开发包 该包的结构是 2.将easyUI的资源文件引入的页面中: <link rel="stylesheet" type="text/css& ...

  9. jQuery zTree几种常用的使用方式

    最近在用这个ztree进行项目中的某些功能的开发.所以这里就随笔记录一下.顺便为我那菜的无地自容地JavaScript做点笔记. 什么是 ZTree 官方简介: zTree 是一个依靠 jQuery ...

最新文章

  1. 有趣设计工作室创始人段先洲:UI设计师的名利场
  2. 如何在IPFS里面上传一张图片
  3. 学习多媒体开发的正确姿势?陈功:看书 啃代码 搞插件
  4. PoweMock集成Spring-test 测试静态方法 禁用字节码验证 -noverify -XX:-UseSplitVerifier
  5. 纪中C组模拟赛总结(2019.8.9)
  6. Visual Studio Code使用问题
  7. Android 高级编程 RecyclerView 控件的使用
  8. 施乐700彩机服务器显示c4,施乐彩色数码复印机故障代码大全
  9. table每行自动触发ajax,table.ajax.reload()成功后未触发:function()
  10. 高职计算机专业用什么软件,【计算机专业论文】高职计算机专业CAD软件教学思考(共4772字)...
  11. 安卓平板外接摄像头_华为?小米?千元安卓平板如何选择?
  12. Wi-Fi也有版本号了!
  13. java基础笔试题(50题)
  14. C++编程练习:2-华氏度转摄氏度
  15. 计算机无法进入bios模式,电脑系统无法进入bios界面解决方法
  16. linux运维基础[系统磁盘管理]——————存储设备的识别、df、du、fsck
  17. JIAR安装报错IRA Startup Failed
  18. 毕业设计 单片机智能药箱系统 - STM32
  19. java部分基础知识 (二):计算机组成原理 原码 补码 反码 按位符 移位符 按位与 按位或 按位抑或 非 分析hashMap的put方法原理
  20. C++的重载操作符(operator)介绍

热门文章

  1. SpringMVC 实现文件下载
  2. 专享策略02 | 套利策略-自动换仓-出场加速
  3. java酷跑_不敢相信,居然用Java写了个“天天酷跑”!
  4. Android安全防护/检查root/检查Xposed/反调试/应用多开/模拟器检测(持续更新1.0.5)
  5. 2020计算机顶级大会_2020年数据科学的顶级编程语言
  6. VScode 检测到#include 错误,请更新includepath。已为此翻译单元 禁用波形曲线
  7. 全球及中国化学机械抛光研磨材料市场需求展望与投资规模预测报告2022版
  8. OA和KM知识管理的区别
  9. 垃圾分类宣传教育——垃圾分类知识竞答活动小程序
  10. 《Arduino》开发 TFT_eSPI-master 库 之用 ESP32 读取SD卡上的图片并显示在1.14IPS屏幕上