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 相关文章推荐
浅析jQuery1.8的几个小变化
Dec 10 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
Aug 18 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
Jul 13 Javascript
javascript父子页面通讯实例详解
Jul 17 Javascript
基于jQuery Ajax实现上传文件
Mar 24 Javascript
JS中对象与字符串的互相转换详解
May 20 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
May 31 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
Oct 10 Javascript
ES6新特性之Object的变化分析
Mar 31 Javascript
javascript+html5+css3自定义提示窗口
Jun 21 Javascript
简单实现jQuery手风琴效果
Aug 18 jQuery
ESLint 是如何检查 .vue 文件的
Nov 30 Vue.js
基于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
2021年最新CPU天梯图
2021/03/04 数码科技
PHP4之真OO
2006/10/09 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
php实现微信公众号主动推送消息
2015/12/31 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
php简单实现sql防注入的方法
2016/04/22 PHP
Yii2语言国际化自动配置详解
2018/08/22 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
jquery blockUI 遮罩不能消失与不能提交的解决方法
2011/09/17 Javascript
jQuery操作select的实例代码
2012/06/14 Javascript
jquery高级编程的最佳实践详解
2014/03/23 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
jquery validate表单验证插件
2016/09/06 Javascript
EsLint入门学习教程
2017/02/17 Javascript
JS开发中百度地图+城市联动实现实时触发查询地址功能
2017/04/13 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
2017/07/31 Javascript
微信小程序实现聊天对话(文本、图片)功能
2018/07/06 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
如何在vue 中引入使用jquery
2020/11/10 jQuery
python私有属性和方法实例分析
2015/01/15 Python
列举Python中吸引人的一些特性
2015/04/09 Python
scrapy爬虫实例分享
2017/12/28 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
css3实现书本翻页效果的示例代码
2021/03/08 HTML / CSS
瑰珀翠美国官网:Crabtree & Evelyn美国
2016/11/29 全球购物
毕业生就业自荐信
2013/12/04 职场文书
《一个小村庄的故事》教学反思
2014/04/13 职场文书
2014年招商工作总结
2014/11/22 职场文书
大学生团日活动总结
2015/05/06 职场文书
创业计划书之外语培训班
2019/11/02 职场文书
Nginx配置https的实现
2021/11/27 Servers
Netty分布式客户端处理接入事件handle源码解析
2022/03/25 Java/Android