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 相关文章推荐
一个可绑定数据源的jQuery数据表格插件
Jul 17 Javascript
JQuery跨Iframe选择实现代码
Aug 19 Javascript
js中关于String对象的replace使用详解
May 24 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
Dec 27 Javascript
js实现网页随机切换背景图片的方法
Nov 01 Javascript
jquery动态改变div宽度和高度
Feb 09 Javascript
javascript封装简单实现方法
Aug 11 Javascript
概述VUE2.0不可忽视的很多变化
Sep 25 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
Sep 14 Javascript
Angular学习教程之RouterLink花式跳转
May 03 Javascript
vue slot与传参实例代码讲解
Apr 28 Javascript
jQuery实现简单三级联动效果
Sep 05 jQuery
基于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/09/05 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
php导入模块文件分享
2015/03/17 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
PHP magento后台无法登录问题解决方法
2016/11/24 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
js解析json读取List中的实体对象示例
2014/03/11 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
关于js函数解释(包括内嵌,对象等)
2016/11/20 Javascript
浅析Ajax语法
2016/12/05 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
2020/05/14 Javascript
[00:08]DOTA2勇士令状等级奖励“天外飞星”
2019/05/24 DOTA
python中正则表达式的使用详解
2014/10/17 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
matplotlib在python上绘制3D散点图实例详解
2017/12/09 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
CSS3 毛玻璃效果
2019/08/14 HTML / CSS
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
南京某公司笔试题
2013/01/27 面试题
员工年终演讲稿
2014/01/03 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
个人委托书怎么写
2014/09/17 职场文书
党员违纪检讨书
2015/05/05 职场文书
Java实现注册登录跳转
2022/06/16 Java/Android