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 相关文章推荐
告诉大家什么是JSON
Jun 10 Javascript
JavaScript 动态将数字金额转化为中文大写金额
May 14 Javascript
jquery插件制作 表单验证实现代码
Aug 17 Javascript
sails框架的学习指南
Dec 22 Javascript
JavaScript事件 "事件对象"的注意要点
Jan 14 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
Mar 16 Javascript
AngularJS变量及过滤器Filter用法分析
Nov 22 Javascript
js判断一个字符串是以某个字符串开头的简单实例
Dec 27 Javascript
JS实现的数字格式化功能示例
Feb 10 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
Apr 12 Javascript
layui清除radio的选中状态实例
Nov 14 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
Nov 05 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
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
php中的buffer缓冲区用法分析
2019/05/31 PHP
解决tp5在nginx下修改配置访问的问题
2019/10/16 PHP
PHP7 标准库修改
2021/03/09 PHP
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
jQuery客户端分页实例代码
2013/11/18 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
js onmousewheel事件多次触发问题解决方法
2014/10/17 Javascript
浅谈JS继承_寄生式继承 & 寄生组合式继承
2016/08/16 Javascript
简单的vue-resourse获取json并应用到模板示例
2017/02/10 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
JavaScript实现实时更新系统时间的实例代码
2017/04/04 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
vue中七牛插件使用的实例代码
2017/07/28 Javascript
初探JavaScript 面向对象(推荐)
2017/09/03 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
vue仿ios列表左划删除
2019/09/26 Javascript
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
vuex管理状态仓库使用详解
2020/07/29 Javascript
使用实现XlsxWriter创建Excel文件并编辑
2018/05/04 Python
详解python里的命名规范
2018/07/16 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
对python中Json与object转化的方法详解
2018/12/31 Python
python实现动态创建类的方法分析
2019/06/25 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
2020/05/25 Python
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
教师绩效工资方案
2014/02/01 职场文书
司机检讨书
2014/02/13 职场文书
院领导写的就业推荐信
2014/03/09 职场文书
总经理助理的职责
2014/03/14 职场文书
法院干警四风问题自我剖析材料
2014/09/29 职场文书
给老师的感谢信
2015/01/20 职场文书
南极大冒险观后感
2015/06/05 职场文书