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的事件描述
Sep 08 Javascript
js 页面输出值
Nov 30 Javascript
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
Jun 04 Javascript
用JavaScript仿PS里的羽化效果代码
Dec 20 Javascript
JavaScript实现函数返回多个值的方法
Jun 09 Javascript
jquery操作angularjs对象
Jun 26 Javascript
举例讲解JavaScript substring()的使用方法
Nov 09 Javascript
跟我学习javascript的执行上下文
Nov 18 Javascript
适用于手机端的jQuery图片滑块动画
Dec 09 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
May 17 Javascript
Node接收电子邮件的实例代码
Jul 21 Javascript
js实现弹框效果
Mar 24 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
Syphon 虹吸式咖啡壶冲煮–拨动法
2021/03/03 冲泡冲煮
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
php 判断页面或图片是否经过gzip压缩的方法
2017/04/05 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
PHP观察者模式实例分析【对比JS观察者模式】
2019/05/22 PHP
cssQuery()的下载与使用方法
2007/01/12 Javascript
javascript 数组的方法集合
2008/06/05 Javascript
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
广泛收集的jQuery拖放插件集合
2012/04/09 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
jquery ajax实现下拉框三级无刷新联动,且保存保持选中值状态
2013/10/29 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
使用jquery提交form表单并自定义action的实现代码
2016/05/25 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
javascript基础知识讲解
2017/01/11 Javascript
vue elementUI 表单校验功能之数组多层嵌套
2019/06/04 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
[03:26]《DAC最前线》之EG经理自述DOTA2经历
2015/02/02 DOTA
Python中使用select模块实现非阻塞的IO
2015/02/03 Python
利用python实现数据分析
2017/01/11 Python
Python的mysql数据库的更新如何实现
2017/07/31 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
python3.6编写的单元测试示例
2019/08/17 Python
零基础小白多久能学会python
2020/06/22 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
Canvas高级路径操作之拖拽对象的实现
2019/08/05 HTML / CSS
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
酒店副总岗位职责
2013/12/24 职场文书
《花的勇气》教后反思
2014/02/12 职场文书
学生顶撞老师的检讨书
2014/09/17 职场文书
2016反腐倡廉警示教育心得体会
2016/01/13 职场文书
Go中使用gjson来操作JSON数据的实现
2022/08/14 Golang