项目需要实现权限管理,使用前端框架bootstrap,所以就直接选用了bootstrap的treeview扩展插件。先上图:
选中父节点时,父节点下所有子节点也都全部选中,看代码
1、HTML代码
<h2>TreeView Checkable</h2> <div id="treeview-checkable"></div>
2、Json数据
function getTvStateData() {
var defaultData = [
{
text: 'Parent 1',
href: '#parent1',
tags: ['4'],
state: {
checked: true
},
nodes: [
{
text: 'Child 1',
href: '#child1',
tags: ['2'],
nodes: [
{
text: 'Grandchild 1',
href: '#grandchild1',
tags: ['0']
},
{
text: 'Grandchild 2',
href: '#grandchild2',
tags: ['0']
}
]
},
{
text: 'Child 2',
href: '#child2',
tags: ['0']
}
]
},
{
text: 'Parent 2',
href: '#parent2',
tags: ['0'],
nodes: [
{
text: 'Child 1',
href: '#child1',
tags: ['2'],
nodes: [
{
text: 'Grandchild 1',
href: '#grandchild1',
tags: ['0']
},
{
text: 'Grandchild 2',
href: '#grandchild2',
tags: ['0']
}
]
},
{
text: 'Child 2',
href: '#child2',
tags: ['0']
}
]
},
{
text: 'Parent 3',
href: '#parent3'
},
{
text: 'Parent 4',
href: '#parent4',
tags: ['0']
},
{
text: 'Parent 5',
href: '#parent5',
tags: ['0']
}
];
return defaultData;
}
3、JS数据绑定,加载TreeView
$(function() {
var $checkableTree = $('#treeview-checkable')
.treeview({
data: getTvStateData(), //数据
showIcon: false,
showCheckbox: true,
levels: 1,
onNodeChecked: function(event, node) { //选中节点
var selectNodes = getChildNodeIdArr(node); //获取所有子节点
if (selectNodes) { //子节点不为空,则选中所有子节点
$('#treeview-checkable').treeview('checkNode', [selectNodes, { silent: true }]);
}
var parentNode = $("#treeview-checkable").treeview("getNode", node.parentId);
setParentNodeCheck(node);
},
onNodeUnchecked: function(event, node) { //取消选中节点
var selectNodes = getChildNodeIdArr(node); //获取所有子节点
if (selectNodes) { //子节点不为空,则取消选中所有子节点
$('#treeview-checkable').treeview('uncheckNode', [selectNodes, { silent: true }]);
}
},
onNodeExpanded:
function(event, data) {
if (data.nodes === undefined || data.nodes === null) {
} else if (data.tags[0] === "2") {
alert("Tags 2");
} else {
alert("1111");
}
}
});
});
4、选中/取消选中父节点时,选中/取消选中所有子节点,以及选中所有子节点时,选中父节点
function getChildNodeIdArr(node) {
var ts = [];
if (node.nodes) {
for (x in node.nodes) {
ts.push(node.nodes[x].nodeId);
if (node.nodes[x].nodes) {
var getNodeDieDai = getChildNodeIdArr(node.nodes[x]);
for (j in getNodeDieDai) {
ts.push(getNodeDieDai[j]);
}
}
}
} else {
ts.push(node.nodeId);
}
return ts;
}
function setParentNodeCheck(node) {
var parentNode = $("#treeview-checkable").treeview("getNode", node.parentId);
if (parentNode.nodes) {
var checkedCount = 0;
for (x in parentNode.nodes) {
if (parentNode.nodes[x].state.checked) {
checkedCount ++;
} else {
break;
}
}
if (checkedCount === parentNode.nodes.length) {
$("#treeview-checkable").treeview("checkNode", parentNode.nodeId);
setParentNodeCheck(parentNode);
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# bootstrap
# treeview
# 全选
# 反选
# bootstrap treeview 扩展addNode方法动态添加子节点的方法
# BootStrap TreeView使用实例详解
# JS树形菜单组件Bootstrap TreeView使用方法详解
# 浅析使用BootStrap TreeView插件实现灵活配置快递模板
# Bootstrap树形菜单插件TreeView.js使用方法详解
# 浅析BootStrap Treeview的简单使用
# 基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符
# 基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符
# bootstrap-treeview自定义双击事件实现方法
# bootstrap-Treeview实现级联勾选
# 为空
# 也都
# 绑定
# 大家多多
# 上图
# 加载
# href
# Parent
# text
# getTvStateData
# true
# defaultData
# var
# tags
# Child
# nodes
# Grandchild
# checked
# state
# brush
相关文章:
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
如何在Golang中使用replace替换模块_指定本地或远程路径
建站之星如何助力企业快速打造五合一网站?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
建站之星如何快速解决建站难题?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
建站之星Pro快速搭建教程:模板选择与功能配置指南
宁波免费建站如何选择可靠模板与平台?
如何快速查询域名建站关键信息?
建站主机服务器选购指南:轻量应用与VPS配置解析
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
高端建站如何打造兼具美学与转化的品牌官网?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
网站制作的步骤包括,正确网址格式怎么写?
无锡营销型网站制作公司,无锡网选车牌流程?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
制作网页的网站有哪些,电脑上怎么做网页?
免费网站制作appp,免费制作app哪个平台好?
建站之星安装路径如何正确选择及配置?
深圳 网站制作,深圳招聘网站哪个比较好一点啊?
已有域名和空间,如何快速搭建网站?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
建站主机选哪种环境更利于SEO优化?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
淘宝制作网站有哪些,淘宝网官网主页?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
学校建站服务器如何选型才能满足性能需求?
建站之星代理费用多少?最新价格详情介绍
如何快速重置建站主机并恢复默认配置?
如何在建站之星网店版论坛获取技术支持?
如何通过IIS搭建网站并配置访问权限?
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
如何在Golang中指定模块版本_使用go.mod控制版本号
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
想学网站制作怎么学,建立一个网站要花费多少?
制作网站的软件免费下载,免费制作app哪个平台好?
制作网站的模板软件,网站怎么建设?
建站之星展会模板:智能建站与自助搭建高效解决方案
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
昆明高端网站制作公司,昆明公租房申请网上登录入口?
如何在局域网内绑定自建网站域名?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
如何快速完成中国万网建站详细流程?
网站微信制作软件,如何制作微信链接?
如何通过主机屋免费建站教程十分钟搭建网站?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
C++中引用和指针有什么区别?(代码说明)
*请认真填写需求信息,我们会在24小时内与您取得联系。