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.boxy插件的iframe扩展代码
Jul 02 Javascript
jquery无缝向上滚动实现代码
Mar 29 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
May 02 Javascript
触屏中的JavaScript事件分析
Feb 06 Javascript
javascript中var的重要性分析
Feb 11 Javascript
JavaScript实现页面跳转的方式汇总
May 16 Javascript
Node.js返回JSONP详解
May 18 Javascript
js 概率计算(简单版)
Sep 12 Javascript
用vscode开发vue应用的方法步骤
May 06 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
Dec 04 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
Feb 12 Javascript
微信小程序学习之自定义滚动弹窗
Dec 20 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中var_dump,var_export,print_r三个函数的区别
2013/06/21 PHP
Cygwin中安装PHP方法步骤
2015/07/04 PHP
表单(FORM)的一些实用效果代码
2007/03/25 Javascript
asp.net HttpHandler实现图片防盗链
2009/11/09 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
2013/01/23 Javascript
jquery删除提示框弹出是否删除对话框
2014/01/07 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
JS实现静止元素自动移动示例
2014/04/14 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
vue.js实现请求数据的方法示例
2017/02/07 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
2018/03/09 Javascript
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
微信小程序实现录音时的麦克风动画效果实例
2019/05/18 Javascript
Python初学时购物车程序练习实例(推荐)
2017/08/08 Python
关于python的list相关知识(推荐)
2017/08/30 Python
matplotlib在python上绘制3D散点图实例详解
2017/12/09 Python
python中requests和https使用简单示例
2018/01/18 Python
python中的闭包函数
2018/02/09 Python
OpenCV+python手势识别框架和实例讲解
2018/08/03 Python
python实现输入的数据在地图上生成热力图效果
2019/12/06 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020/02/21 Python
Jupyter Notebook打开任意文件夹操作
2020/04/14 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
2020/11/17 Python
python3中for循环踩过的坑记录
2020/12/14 Python
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
招商业务员岗位职责
2013/12/16 职场文书
化工专业自荐书
2014/06/16 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书
高中英语教学反思范文
2016/03/02 职场文书
python如何读取.mtx文件
2021/04/22 Python
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis