bootstrap treeview 树形菜单带复选框及级联选择功能


Posted in Javascript onJune 08, 2018

具体代码如下所示:

<div id="searchTree"></div> 
 <script>
  var treeData = [{
   text: "Parent 1",
   nodes: [{
    text: "Child 1",
    nodes: [{
     text: "Grandchild 1"
    }, {
     text: "Grandchild 2",
     nodes: [{
      text: "Grandchild 2-1",
      nodes: [{
       text: "Grandchild 2-1-1"
      }, {
       text: "Grandchild 2-2-1",
      }]
     }, {
      text: "Grandchild 1-2",
     }]
    }]
   }, {
    text: "Child 2",
    nodes: [{
     text: "Grandchild 2-1"
    }, {
     text: "Grandchild 2-2",
    }]
   }]
  }, {
   text: "Parent 2",
   id:'11111'
  }, {
   text: "Parent 3"
  }, {
   text: "Parent 4"
  }, {
   text: "Parent 5"
  }];
  var nodeCheckedSilent = false;
  function nodeChecked(event, node) {
   if (nodeCheckedSilent) {
    return;
   }
   nodeCheckedSilent = true;
   checkAllParent(node);
   checkAllSon(node);
   nodeCheckedSilent = false;
  }
  var nodeUncheckedSilent = false;
  function nodeUnchecked(event, node) {
   if (nodeUncheckedSilent)
    return;
   nodeUncheckedSilent = true;
   uncheckAllParent(node);
   uncheckAllSon(node);
   nodeUncheckedSilent = false;
  }
  //选中全部父节点 
  function checkAllParent(node) {
   $('#searchTree').treeview('checkNode', node.nodeId, {
    silent: true
   });
   var parentNode = $('#searchTree').treeview('getParent', node.nodeId);
   if (!("nodeId" in parentNode)) {
    return;
   } else {
    checkAllParent(parentNode);
   }
  }
  //取消全部父节点 
  function uncheckAllParent(node) {
   $('#searchTree').treeview('uncheckNode', node.nodeId, {
    silent: true
   });
   var siblings = $('#searchTree').treeview('getSiblings', node.nodeId);
   var parentNode = $('#searchTree').treeview('getParent', node.nodeId);
   if (!("nodeId" in parentNode)) {
    return;
   }
   var isAllUnchecked = true; //是否全部没选中 
   for (var i in siblings) {
    if (siblings[i].state.checked) {
     isAllUnchecked = false;
     break;
    }
   }
   if (isAllUnchecked) {
    uncheckAllParent(parentNode);
   }
  }
  //级联选中所有子节点 
  function checkAllSon(node) {
   $('#searchTree').treeview('checkNode', node.nodeId, {
    silent: true
   });
   if (node.nodes != null && node.nodes.length > 0) {
    for (var i in node.nodes) {
     checkAllSon(node.nodes[i]);
    }
   }
  }
  //级联取消所有子节点 
  function uncheckAllSon(node) {
   $('#searchTree').treeview('uncheckNode', node.nodeId, {
    silent: true
   });
   if (node.nodes != null && node.nodes.length > 0) {
    for (var i in node.nodes) {
     uncheckAllSon(node.nodes[i]);
    }
   }
  }
  $('#searchTree').treeview({
   showCheckbox: true,
   data: treeData,
   onNodeChecked: nodeChecked,
   onNodeUnchecked: nodeUnchecked
  });
  </script>

总结

以上所述是小编给大家介绍的bootstrap treeview 树形菜单带复选框及级联选择功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript正则表达式中参数g(全局)的作用
Nov 11 Javascript
JavaScript中将一个值转换为字符串的方法分析[译]
Sep 21 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
Aug 28 Javascript
详解javascript中原始数据类型Null和Undefined
Dec 17 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
Jul 05 Javascript
vue-cli项目中怎么使用mock数据
Sep 27 Javascript
微信小程序下拉刷新界面的实现
Sep 28 Javascript
VUE重点问题总结
Mar 19 Javascript
Vue中保存数据到磁盘文件的方法
Sep 06 Javascript
JavaScript学习笔记之图片库案例分析
Jan 08 Javascript
vue本地打开build后生成的dist文件夹index.html问题
Sep 04 Javascript
React Native 混合开发多入口加载方式详解
Sep 23 Javascript
原生实现一个react-redux的代码示例
Jun 08 #Javascript
vue项目中使用百度地图的方法
Jun 08 #Javascript
浅谈Vue路由快照实现思路及其问题
Jun 07 #Javascript
JavaScript中click和onclick本质区别与用法分析
Jun 07 #Javascript
jQuery动态移除与增加onclick属性的方法详解
Jun 07 #jQuery
使用Vue-cli 3.0搭建Vue项目的方法
Jun 07 #Javascript
vue 国际化 vue-i18n 双语言 语言包
Jun 07 #Javascript
You might like
PHP 函数学习简单小结
2010/07/08 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
php旋转图片90度的方法
2013/11/07 PHP
php实现对短信验证码发送次数的限制实例讲解
2021/03/04 PHP
JS网络游戏-(模拟城市webgame)提供的一些例子下载
2007/10/14 Javascript
JAVASCRIPT  THIS详解 面向对象
2009/03/25 Javascript
Dojo 学习笔记入门篇 First Dojo Example
2009/11/15 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
jquery实现更改表格行顺序示例
2014/04/30 Javascript
jquery用data方法获取某个元素上的事件
2014/06/23 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
Nodejs学习笔记之Global Objects全局对象
2015/01/13 NodeJs
javascript显示中文日期的方法
2015/06/18 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
2015/11/24 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
Angular整合zTree的示例代码
2018/01/24 Javascript
jQuery中each遍历的三种方法实例分析
2018/09/07 jQuery
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
详解Python使用simplejson模块解析JSON的方法
2016/03/24 Python
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
使用Python+Splinter自动刷新抢12306火车票
2018/01/03 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
使用Keras画神经网络准确性图教程
2020/06/15 Python
python 绘制国旗的示例
2020/09/27 Python
购买限量版收藏品、珠宝和礼品:Bradford Exchange
2016/09/23 全球购物
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
介绍一下#error预处理
2015/09/25 面试题
经贸日语毕业生自荐信
2013/11/03 职场文书
优秀毕业大学生推荐信
2013/11/13 职场文书
致裁判员加油稿
2014/02/08 职场文书
电台编导求职信
2014/05/06 职场文书
餐厅服务员管理制度
2015/08/05 职场文书
遗嘱格式范本
2015/08/07 职场文书