bootstrap-Treeview实现级联勾选


Posted in Javascript onNovember 23, 2017

本文实例为大家分享了bootstrap Treeview实现级联勾选的具体代码,供大家参考,具体内容如下

核心方法

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]); 
  } 
 } 
}

6-27 : 经部分网友反馈,图中的 if(!("id" in perentNode)) 需要改成 if(!("nodeId" in perentNode))才能正常运行,我想应该是版本问题,上面代码中已经改正了。如果运行不了,请改回 if(!("id" in perentNode))试一下。(谢谢大家提出)
因为treeview中silent属性指定了无效(我也不知道为什么委屈),所以多加了两个变量来控制

$('#searchTree').treeview({ 
  showCheckbox:true, 
  data:treeData, 
  onNodeChecked:nodeChecked , 
  onNodeUnchecked:nodeUnchecked 
 });

效果图:

bootstrap-Treeview实现级联勾选

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
Aug 15 Javascript
无阻塞加载脚本分析[全]
Jan 20 Javascript
使用JavaScript构建JSON格式字符串实现步骤
Mar 22 Javascript
JavaScript实现信用卡校验方法
Apr 07 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
Mar 30 Javascript
详解vue.js的devtools安装
May 26 Javascript
VueJs监听window.resize方法示例
Jan 17 Javascript
vue脚手架搭建过程图解
Jun 06 Javascript
如何使用puppet替换文件中的string
Dec 06 Javascript
vue element-ui读取pdf文件的方法
Nov 26 Javascript
js实现数字跳动到指定数字
Aug 25 Javascript
Javascript 解构赋值详情
Nov 17 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
Nov 23 #Javascript
sublime text配置node.js调试(图文教程)
Nov 23 #Javascript
Vue代码分割懒加载的实现方法
Nov 23 #Javascript
初探js和简单隐藏效果的实例
Nov 23 #Javascript
详解如何在angular2中获取节点
Nov 23 #Javascript
Vuejs中使用markdown服务器端渲染的示例
Nov 22 #Javascript
浅谈Vue-cli 命令行工具分析
Nov 22 #Javascript
You might like
php实现的简单压缩英文字符串的代码
2008/04/24 PHP
php常用表单验证类用法实例
2015/06/18 PHP
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
PHP token验证生成原理实例分析
2019/06/05 PHP
php报错502badgateway解决方法
2019/10/11 PHP
javascript让setInteval里的函数参数中的this指向特定的对象
2010/01/31 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
JS delegate与live浅析
2013/12/21 Javascript
js css 实现遮罩层覆盖其他页面元素附图
2014/09/22 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
基于jQuery的checkbox全选问题分析
2016/11/18 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
浅析vue中的nextTick
2020/12/28 Vue.js
python 打印对象的所有属性值的方法
2016/09/11 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
python中logging包的使用总结
2018/02/28 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
使用python socket分发大文件的实现方法
2019/07/08 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
2019/08/09 Python
春节到了 教你使用python来抢票回家
2020/01/06 Python
Django中Q查询及Q()对象 F查询及F()对象用法
2020/07/09 Python
网络安全类面试题
2015/08/01 面试题
军训鉴定表自我鉴定
2014/02/13 职场文书
二年级评语大全
2014/04/23 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书
机关领导干部作风整顿整改措施
2014/09/19 职场文书
2014年班组长工作总结
2014/11/20 职场文书
晚会主持人开场白台词
2015/05/28 职场文书