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高级编程的最佳实践详解
Mar 23 Javascript
jQuery获得子元素个数的方法
Apr 14 Javascript
javascript显示上周、上个月日期的处理方法
Feb 03 Javascript
js时间比较 js计算时间差的简单实现方法
Aug 26 Javascript
浅谈JavaScript的计时器对象
Dec 26 Javascript
jquery获取下拉框中的循环值
Feb 08 Javascript
Vue 实用分页paging实例代码
Apr 12 Javascript
JavaScript之RegExp_动力节点Java学院整理
Jun 29 Javascript
Vue实现简易翻页效果源码分享
Nov 08 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
Dec 30 Javascript
vue实现的请求服务器端API接口示例
May 25 Javascript
Vue2.0搭建脚手架
Mar 13 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
一个SQL管理员的web接口
2006/10/09 PHP
php 采集书并合成txt格式的实现代码
2009/03/01 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
PHP中10个不常见却非常有用的函数
2010/03/21 PHP
drupal 代码实现URL重写
2011/05/04 PHP
php curl 上传文件代码实例
2015/04/27 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
通过AJAX的JS、JQuery两种方式解析XML示例介绍
2013/09/23 Javascript
高性能JavaScript模板引擎实现原理详解
2015/02/05 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
2015/12/10 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
详解HTTPS 的原理和 NodeJS 的实现
2017/07/04 NodeJs
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
自己动手封装一个React Native多级联动
2018/09/19 Javascript
vue增加强缓存和版本号的实现方法
2019/05/01 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
Python抽象类的新写法
2015/06/18 Python
用virtualenv建立多个Python独立虚拟开发环境
2017/07/06 Python
python实现抖音视频批量下载
2018/06/20 Python
Python 处理图片像素点的实例
2019/01/08 Python
python实现同一局域网下传输图片
2020/03/20 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
CSS3实现彩色进度条动画的示例
2020/10/29 HTML / CSS
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
一组SQL面试题
2016/02/15 面试题
What's the difference between deep copy and shallow copy? (深拷贝与浅拷贝有什么区别)
2015/11/10 面试题
2014年医院党建工作总结
2014/12/20 职场文书
pytorch实现ResNet结构的实例代码
2021/05/17 Python