jquery写的树状列表插件-alvintree
在做项目的时候遇到选择部门下人员的功能,可多选可单选,所以就想着使用树状列表来进行选择,但在网上找了很多,发现要么就是挺复杂,要么就是需要各种前端框架的支持,试了一个感觉难用,所以就想着自己写一个简便的树状列表,后期再遇到类似问题的时候可以作为工具使用,将它写成了插件,推荐给大家来使用。
该树状列表是基于jquery来写的,没有使用任何前端框架,只需要支持jquery的页面就可以使用。
首先我们来看一下该插件的目录结构:
包含一个css样式表文件夹,一个js文件夹,一个demo示例文件,一个img图片文件夹,在css文件夹里面包含一个核心样式文件:alvintree.css,在js文件夹包含一个核心js文件:alvintree.js,在img文件夹里面包含两个图标:分别是打开关闭的图标(可自己替换)。demo.html是一个示例文件,可在浏览器中打开该文件看一下功能示例。
该插件的功能效果如下:
(1)树状列表单选功能
显示数据,数据里面可包含无限极节点:
如果选中其中某一项,取选中项的值:
(2)树状列表多选功能
显示数据,数据里面可包含无限极节点,多选前面加了一个复选框:
如果选中其中某些项,取选中项的值:
还可以设置某些项选中:
以上就是该插件大体能够实现的功能,功能比较简单但比较实用,样式比较简单不复杂,当然因为没有美工的帮助,本插件的样子就比较朴素了,下面我们具体来看一下,如何在我们自己的页面使用该插件:
1.将该插件文件夹放到我们自己的项目目录下。
2.在需要使用的页面引入三个核心文件:
jquery文件、alvintree.js文件、alvintree.css文件,例如:
<script src="./js/jquery-1.11.2.min.js"></script>
<script src="./js/alvintree.js"></script>
<link href="./css/alvintree.css" rel="stylesheet" type="text/css" />
3.在页面需要显示树状列表的位置,添加一个DIV元素,给一个ID:
<div id="alvintree" style="width:300px"></div>
4.在页面的js里面来加载树状列表数据显示:(李昌辉)
(1)该插件需要的数据格式,json数据,关键的三个key:name代表要显示的名字,tag代表标识的值(一般是数据的主键值),item代表它的子集数据;该json数据可以使用ajax调取处理页面获取,因为该插件是可以支持无限极树状列表的,所以数据格式可能比较复杂一些,可在处理页面通过递归的方式组合好。
var jsondata = [
{
"name":"一级节点一", //显示的名字
"tag":"1", //主键值
"item":[ //子集元素
{
"name":"二级节点一",
"tag":"21",
"item":[
{
"name":"三级节点一",
"tag":"31",
"item":[
]
},
{
"name":"三级节点二",
"tag":"32",
"item":[
]
}
]
},
{
"name":"二级节点二",
"tag":"22",
"item":[
]
}
]
},
{
"name":"一级节点二",
"tag":"2",
"item":[
]
},
{
"name":"一级节点三",
"tag":"3",
"item":[
]
},
];
(2)显示单选树状列表,外层容器的ID即对应上面我们在页面里面放的DIV的ID:
var tree = new AlvinTree({
data:jsondata, //需要显示的数据
container:"alvintree", //外层容器的ID
ishidden:true //是否默认隐藏子集
});
(3)单选树状列表取选中项的值,需调用方法getvalue()即可获取选中项的tag值:
tree.getvalue();
(4)如需使用多选树状列表,则使用如下代码,单选的为Alvintree,多选的为Alvintrees。
var trees = new AlvinTrees({
data:jsondata, //需要显示的数据
container:"alvintrees", //外层容器的ID
ishidden:true //是否默认隐藏子集
});
(5)多选树状列表取选中项的值,需调用方法getvalues()来获取多个选中项的值,返回结果是多个值中间用逗号分隔的一个字符串:
该方法包含一个参数,0代表取所有选中的,不分级别;1代表取选中项中的一级项;2代表取选中项中的二级项;依次类推。。。
trees.getvalues(0);
(6)如需设置某些项默认选中,则需调用selected()方法来实现,该方法需要三个参数,后两个参数可写可不写。
第一个参数代表要选中的主键值,是"1,2,3"这种形式的字符串;
第二个参数代表选中之前是否要清除以前的选中状态,true代表清除,如不填第二个参数,默认为false;
第三个参数代表想要让第几层的复选框选中,由于在数据库里面不同的表主键可能会重复,所以可使用第三个参数控制让第几层的选中,默认为0,0代表所有 1代表第一层 2代表第二层,依次类推。。。
var arr = [1,2,3]; //需要选中的主键值,多个用数组表示
trees.selected(arr); //设置选中
以上即该插件的用法,功能相对来说比较少一些,但能够满足正常的使用,附上下载地址:
https://pan.baidu.com/s/1sl9MrMl
可以下载使用,如需其他功能可留言,有时间再增加额外功能。
jquery写的树状列表插件-alvintree的更多相关文章
- GTK+中的树状列表构件(GtkTreeView)
GTK+中的树状列表构件(GtkTreeView) GTK+中的树状列表构件(GtkTreeView) 在本章的GTK+程序设计教程中,我们将向大家重点介绍非常常用也有点复杂的构件--GtkTreeV ...
- 用jQuery写了一个模态框插件
用jQuery写了一个模态框插件 大家觉得下面的框框好看么, 水印可以去掉(这个任务交给你们了(- o -)~zZ); "info"框 $("div").con ...
- selenium如何操作页面树状列表
selenium如何操作页面树状列表??举个例子:我要怎么操作如下图所示的树状结构列表?我要对这个树状结构列表做什么操作? 一.思路 1.根据driver.find_element_by_xpath( ...
- C#使用Jquery zTree实现树状结构显示_异步数据加载
JQuery-Ztree下载地址:https://github.com/zTree/zTree_v3 JQuery-Ztree数结构演示页面: http://www.treejs.cn/v3/dem ...
- jQuery 写的幻灯左右切换插件
<html> <head> <meta charset="utf-8"> <title>官网</title> <s ...
- LigerUI 树状列表折叠显示
http://blog.csdn.net/haojuntu/article/details/8626040 —————————————————————————————————————————————— ...
- Android中的树状(tree)列表
树状列表前端挺常用的,还有人专门写过Ztree,Android中有的时候也需要使用到树状列表,上篇文章写了一下ExpandableListView,ExpandableListView最多支持两级结构 ...
- jquery-treegrid树状表格的使用(.Net平台)
上一篇介绍了DataTable,这一篇在DT的基础之上再使用jquery的一款插件:treegrid,官网地址:http://maxazan.github.io/jquery-treegrid/ 一. ...
- 【BZOJ】1901: Zju2112 Dynamic Rankings(区间第k小+树状数组套主席树)
http://www.lydsy.com/JudgeOnline/problem.php?id=1901 首先还是吐槽时间,我在zoj交无限tle啊!!!!!!!!我一直以为是程序错了啊啊啊啊啊啊. ...
随机推荐
- Element ui表格展示图片问题
当需要遍历图片时,不能直接使用prop绑定值,具体 代码如下 <el-table-column label="头像" width="100"> &l ...
- java7大排序算法
1.冒泡排序 package lizicong; import java.util.Scanner; public class BubbleSort { /* * 属于交换排序:稳定 * 排序原理:相 ...
- Visual Assist X 10.6.1830.0 常用快捷键
Visual Assist X 10.6.1830.0 常用快捷键 1.Alt + G: 在定义与声明之间互跳. 2.Alt + O: 在.h与.cpp之间互跳.(O是字母O,不是数字零) 3.Alt ...
- 2016 ICPC总结
2016 ICPC总结 九月份开学,开始知识点的补充,刚开始的几周都在刷acmsteps,十月开始进行专题性的学习,首先进行的数据结构,给自己定的计划,十一月前看完数据结构,刚开始的时候看的都是以前的 ...
- 使用js编写一个简单的运动框架
下班后,,没事捣鼓捣鼓个人的小爱好. 首先,说明我的这个运动框架(css所有属性)也是常见的框架一种,健壮性并不是太好,对于新手学习倒是挺好,,若是大神,老司机请拐弯. 上来,我们先定义一个区块,然后 ...
- java 通过TCP\UDP 协议实现多人聊天,点对点,文件传送-----分服务器端和客户端
java 通过TCP\UDP 协议实现多人聊天,点对点,文件传送-----分服务器端和客户端 启动界面如下图: 首先启动服务器: 客户端登陆,登陆成功后为: 默认发送是全部用户,是多人发送. 当在边列 ...
- vue.js项目安装
Vue.js 安装 NPM 方法安装vue.js项目 npm 版本需要大于 3.0,如果低于此版本需要升级它: # 查看版本 $ npm -v 2.3.0 #升级 npm npm install np ...
- HTTP中的Range: bytes=0-
HTTP中的Range就是分段请求字节数,也是大家经常说的断点续传.Range头域可以请求实体的一个或者多个子范围,Range的值为0表示第一个字节,也就是Range计算字节数是从0开始的 表示第二个 ...
- maven构建SSM--pox.mxl
最近在做项目,把maven构建SSM的pom.xml文件内容小结一下: 在console中输入如下内容,使用maven创建java web项目: mvn archetype:generate -Dgr ...
- DbContext 中的 Explicit interface implementation
疑惑 前段时间一直再用Entity Framework 6,写了一些公用的方法,在这个过程中发现了DbContext实现的接口IObjectContextAdapter,可以通过这个接口访问到更底层的 ...