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读取html5 localstorage的值的方法
Jan 04 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
Feb 02 Javascript
原生js实现跨浏览器获取鼠标按键的值
Apr 08 Javascript
深入解析JavaScript中的变量作用域
Dec 06 Javascript
jquery sortable的拖动方法示例详解
Jan 16 Javascript
使用angular写一个hello world
Jan 23 Javascript
Angular中的Promise对象($q介绍)
Mar 03 Javascript
深入解析JavaScript中的数字对象与字符串对象
Oct 21 Javascript
JQuery validate插件验证用户注册信息
May 11 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
Dec 08 Javascript
JavaScript中错误正确处理方式小结你用对了吗
Oct 10 Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
Mar 28 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使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
JavaScript 数组的 uniq 方法
2008/01/23 Javascript
Jquery 绑定时间实现代码
2011/05/03 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
javascript简单实现类似QQ头像弹出效果的方法
2015/08/03 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
JQuery判断radio单选框是否选中并获取值的方法
2019/01/17 jQuery
Vue自定义指令上报Google Analytics事件统计的方法
2019/02/25 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
2019/07/06 Javascript
微信小程序实现原生步骤条
2019/07/25 Javascript
Vue formData实现图片上传
2019/08/20 Javascript
node省市区三级数据性能测评实例分析
2019/11/06 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
Vant 在vue-cli 4.x中按需加载操作
2020/11/05 Javascript
Python中for循环控制语句用法实例
2015/06/02 Python
Python的math模块中的常用数学函数整理
2016/02/04 Python
解决Pycharm下面出现No R interpreter defined的问题
2018/10/29 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
python对文件的操作方法汇总
2020/02/28 Python
在Django中自定义filter并在template中的使用详解
2020/05/19 Python
详解vscode实现远程linux服务器上Python开发
2020/11/10 Python
详解CSS3开启硬件加速的使用和坑
2017/08/21 HTML / CSS
德国隐形眼镜店:LuckyLens
2018/07/29 全球购物
印度尼西亚最完整和最大的在线药房网站:Farmaku.com
2019/11/23 全球购物
北京-环亚运商测试题.net程序员初步测试题
2013/05/28 面试题
最新党员的自我评价分享
2013/11/04 职场文书
如何写毕业求职自荐信
2013/11/06 职场文书
微笑面对生活演讲稿
2014/05/13 职场文书
地球一小时宣传标语
2014/06/24 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
集结号观后感
2015/06/08 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
Django路由层如何获取正确的url
2021/07/15 Python