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 相关文章推荐
javascript之函数直接量(function(){})()
Jun 29 Javascript
有关于JS辅助函数inherit()的问题
Apr 07 Javascript
选择复选框按钮置灰否则按钮可用
May 22 Javascript
js中利用tagname和id获取元素的方法
Jan 03 Javascript
angularjs表格ng-table使用备忘录
Mar 09 Javascript
分享一道关于闭包、bind和this的面试题
Feb 20 Javascript
详解使用React制作一个模态框
Mar 14 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
May 07 Javascript
es6函数name属性功能与用法实例分析
Apr 18 Javascript
在Angular中实现一个级联效果的下拉框的示例代码
May 20 Javascript
Javascript中window.name属性详解
Nov 19 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
Dec 07 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
用Php实现链结人气统计
2006/10/09 PHP
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
你必须知道的Javascript知识点之"字面量和对应类型"说明介绍
2013/04/23 Javascript
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
JavaScript DOM操作表格及样式
2015/04/13 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
2015/08/27 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
js实现百度搜索提示框
2017/02/05 Javascript
详解如何在vue-cli中使用vuex
2018/08/07 Javascript
Vue项目安装插件并保存
2019/01/28 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
jquery实现掷骰子小游戏
2019/10/24 jQuery
ES6对象操作实例详解
2020/05/23 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
在Vue中使用antv的示例代码
2020/06/29 Javascript
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
[01:28:24]NAVI vs VG Supermajor 败者组 BO3 第三场 6.5
2018/06/06 DOTA
numpy.linalg.eig() 计算矩阵特征向量方式
2019/11/29 Python
在django中自定义字段Field详解
2019/12/03 Python
Django app配置多个数据库代码实例
2019/12/17 Python
Django多个app urls配置代码实例
2020/11/26 Python
香港通票:Hong Kong Pass
2019/02/26 全球购物
C#面试题
2016/05/06 面试题
JAVA软件工程师测试题
2014/07/25 面试题
幼儿园国庆节活动方案
2014/02/01 职场文书
实习会计求职自荐信范文
2014/03/10 职场文书
简易离婚协议书范本
2014/10/24 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
小学少先队辅导员述职报告
2015/01/10 职场文书
可可西里观后感
2015/06/08 职场文书
话题作文之成长
2019/12/09 职场文书
MySQL慢查询的坑
2021/04/28 MySQL
Django分页器的用法你都了解吗
2021/05/26 Python
Tomcat 与 maven 的安装与使用教程
2022/06/16 Servers