2018年1月11日升级

Layui - Xtree 3.0

此版本包含了前两个版本所有的功能,同时修复了一些问题,增加了一些功能,之前的版本可以直接抛弃啦!
本次升级改动较多,参数也有所更改,尽量别直接覆盖之前版本,而是当成一个全新的tree插件来对待吧!

Demo地址: http://www.acmeworker.com/layuiXtree/XtreeDemo

码云地址: https://gitee.com/xianglikai1/layui-tree2.0

博客地址: http://www.acmeworker.com/BlogContent?type=1038

效果图:


功能说明:(详细使用方式在下面的文档中)
1、常规tree,无层级限制;
2、增加checkbox复选框;
3、两种数据绑定方式,json数组/异步数据接口,优化了数据格式;
4、节点默认选中状态;
5、节点是否可用;
6、父级节点拥有其子级节点全选功能;
7、父级节点监听子级节点选中状态,并更改自身状态;
8、加载等待提示;
9、加载完毕后的初始展开状态;
10、三种节点图标样式自定义设置,取自layui图标;
11、三种节点图标颜色自定义配色;
12、全选框;
13、全选框状态更改触发的监听事件自定义;
14、节点状态更改的监听事件自定义(节点点击事件,不包含全选框);
15、可自动撑起容器高度,容器最小高度100px;
16、解决单页面多个xtree冲突的问题;
17、如layui一样简单的使用方式;

提供四种方法:
1、获取全部[选中的][末级节点]原checkbox DOM对象,返回Array
2、获取全部原checkbox DOM对象,返回Array
3、通过value值找父级DOM对象,顶级节点与错误值均返回null
4、更新数据,重新渲染,无返回值


使用文档:

一、引用
页面中引用了 layui 的 css 和 js 后,添加引用 layui-xtree.js 一个文件即可,原生js,不依赖jquery。
所有xtree的js代码均要写在 layui.use(['form'], function () { **这里** });

二、容器
html中只需要一个准备好的div即可,宽度需要你来指定,高度可自动撑起,也可固定配合 overflow: auto;
注意,容器必须放在这样的一个form表单中:<form class="layui-form"></form>

<form class="layui-form">
<div id="xtree1" style="width:400px;border:1px solid black;padding: 10px 0 25px 5px;"></div>
</form>

三、最简单的用法,三个必须的参数
elem:放置xtree的容器id,不要带#号
form:layui的form对象
data:数据,可直接写json数组,也可写一个异步接口
数据格式在下面

var xtree1 = new layuiXtree({
elem: 'xtree1' //(必填) 放置xtree的容器id,不要带#号
, form: form //(必填) layui 的 from
, data: json //(必填) json数组(数据格式在下面)
});

var xtree2 = new layuiXtree({
elem: 'xtree2' //(必填) 放置xtree的容器id,不要带#号
, form: form //(必填) layui 的 from
, data: 'server/xtreedata.ashx' //(必填) 数据接口,需要返回以上结构的json字符串(数据格式在下面)
});

四、带全部参数的完整用法:
直接看代码吧

var xtree3 = new layuiXtree({
elem: 'xtree3' //必填
, form: form //必填
, data: 'server/xtreedata2.ashx' //必填
, isopen: false //加载完毕后的展开状态,默认值:true
, ckall: true //启用全选功能,默认值:false
, ckallback: function () { } //全选框状态改变后执行的回调函数
, icon: { //三种图标样式,更改几个都可以,用的是layui的图标
open: "图标代号" //节点打开的图标
, close: "图标代号" //节点关闭的图标
, end: "图标代号" //末尾节点的图标
}
, color: { //三种图标颜色,独立配色,更改几个都可以
open: "#EE9A00" //节点图标打开的颜色
, close: "#EEC591" //节点图标关闭的颜色
, end: "#828282" //末级节点图标的颜色
}
, click: function (data) { //节点选中状态改变事件监听,全选框有自己的监听事件
console.log(data.elem); //得到checkbox原始DOM对象
console.log(data.elem.checked); //开关是否开启,true或者false
console.log(data.value); //开关value值,也可以通过data.elem.value得到
console.log(data.othis); //得到美化后的DOM对象
}
});

五、json数据格式,需要的为json数组
title:string 显示的值 (必填)
value:string 隐藏的值 (必填)
checked:bool 默认是否选中,true为选中,false与不填都为不选中 (选填)
disabled:bool 是否可用,true为不可用,false与不填都为可用 (选填)
data: json数组 节点的子节点数组,结构与此节点一致,(必填)如果无子节点则必须为 data:[]

补充说明:
checked只作用于末级节点,有子级的节点不起作用;
disabled作用于非末级节点,你会感觉很奇怪;

结构举例:

[
{
title: "节点1", value: "jd1", data: [
{ title: "节点1.1", checked: true, disabled: true, value: "jd1.1", data: [] }
, { title: "节点1.2", value: "jd1.2", checked: true, data: [] }
, { title: "节点1.3", value: "jd1.3", disabled: true, data: [] }
, { title: "节点1.4", value: "jd1.4", data: [] }
]
}
, {
title: "节点2", value: "jd2", data: [
{ title: "节点2.1", value: "jd2.1", data: [] }
, { title: "节点2.2", value: "jd2.2", data: [] }
, { title: "节点2.3", value: "jd2.3", data: [] }
, { title: "节点2.4", value: "jd2.4", data: [] }
]
}
, { title: "节点3", value: "jd3", data: [] }
, { title: "节点4", value: "jd4", data: [] }
]

六、提供的方法
1、获取全部[选中的][末级节点]原checkbox DOM对象,返回Array

xtree1.GetChecked();

2、获取全部原checkbox DOM对象,返回Array

xtree1.GetAllCheckBox();

3、通过value值找父级原 checkbox DOM对象,顶级节点与错误值均返回null

xtree1.GetParent(‘节点的value值’);

4、更新数据,重新渲染,无返回值

xtree1.render();

结束语:
很抱歉,依然不兼容IE 
如果你看代码会发现我真的是努力过了,水平有限,并未成功兼容,接下来我会继续尝试去兼容IE。

最后,祝 layui 越来越好!

Layui - Xtree 3.0 http://acmeworker.com/BlogContent?type=1038的更多相关文章

  1. windows7下解决caffe check failed registry.count(type) == 1(0 vs. 1) unknown layer type问题

    在Windows7下调用vs2013生成的Caffe静态库时经常会提示Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer t ...

  2. 【神经网络与深度学习】Caffe训练执行时爆出的Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type

    自己建立一个工程,希望调用libcaffe.lib ,各种配置好,也能成功编译,但是运行就会遇到报错 F0519 14:54:12.494139 14504 layer_factory.hpp:77] ...

  3. layui xtree 实现一级节点单选 ,子节点复选

    在外部定义变量和方法 //定义变量 接收顶级节点的值 var topValue; // 获取顶级节点值的方法 function getParent(value) { var val = project ...

  4. 使用==操作符比较命令行参数args[0]和字符串返回“Invalid type"

    运行程序接收一个来自命令行的字符串参数(取值1,2,3,4),根据参数执行对应语句块. 由于未能判断字符串内容是否相同导致代码if语句块代码失效,怎么也看不到schedule方法的效果, 以下是错误代 ...

  5. netcore程序部署 ubuntu 16.0.4 报错 The type initializer for 'System.Net.Http.CurlHandler'的解决方案

    最近业务扩展需要把netcore程序部署到ubuntu 16.0.4上,因为代码里面用到了HttpClient 请求. 部署ubuntu后一直报错 参考地址:https://github.com/do ...

  6. layUI Tree 的使用

    原文作者:小巷而已 [[layui-xtree 3.0]依赖layui form模块 复选框tree插件] 原文链接: https://blog.csdn.net/xianglikai1/articl ...

  7. layui 设计资源——2.0 版本的 Axure 组件包,产品交互设计利器

    大家好,很久不见,这次为大家分享的是 layui_2.0版本的axure组件包,在去年发布的 layui Axure 1.0 中(见:http://fly.layui.com/jie/9842/ )赢 ...

  8. solr4.0.0学习(二) 数据库导入clob与blob为索引

    导入clob很简单.但是blob好像没有提供方法,所以改了一下源码,重新编译替换class文件,竟然成功了. 先把配置文件贴上 SCHEMA.XML <?xml version="1. ...

  9. layim+signalr2.0在线轻聊版解决方案

    本内容有版权限制,仅提供学习交流参考等等,请勿随便转载或者代码商用.     /** layui-v2.1.5 MIT License By http://www.layui.com */; layu ...

随机推荐

  1. SVN linux 服务器端配置

    一. SVN 简单介绍 Subversion(SVN) 是一个开源的版本号控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository ...

  2. javascript006_Object_模拟java的Map

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  3. 【数组】word search

    题目: Given a 2D board and a word, find if the word exists in the grid. The word can be constructed fr ...

  4. Jmeter之测试报告

    当我们完成测试后,需要通过报告来查看测试结果 一.聚合报告 Label:每个JMeter的element的Name值.例如HTTP Request的Name #Samples:发出请求数量.例如:如第 ...

  5. 通过面试题,让我们来了解Collection

    前言 欢迎关注公众号:Coder编程 获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识!** 本章主要介绍Collection集合相关知识,结合面试中会提到的相关问题进行知识点的梳理.希望 ...

  6. Go RabbitMQ(三)发布订阅模式

    RabbitMQ 在上一节中我们创建了工作队列,并且假设每一个任务都能够准确的到达对应的worker.在本节中我们将介绍如何将一个消息传递到多个消费者,这也就是所说的发布订阅模式 为了验证该模式我们使 ...

  7. c之指针与数组(2)Dynamic Data Structures: Malloc and Free--转载

    http://www.howstuffworks.com/c29.htm http://computer.howstuffworks.com/c.htm Dynamic Data Structures ...

  8. QT下载地址大全

    1. 所有Qt版本下载地址: http://download.qt.io/archive/qt/ 2. 所有Qt Creator下载地址: http://download.qt.io/archive/ ...

  9. 相对布局--RelativeLayout

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=&q ...

  10. Jquery 搜索框自动提示

    为文本框增加自动提示下拉功能,比如输入 1,则从后台数据库查询出包含1 的字段,在文本框增加下拉列表供用户选择 ajax 返回数据为搜索查询字段的json集合 <script src=" ...