Layui - Xtree 3.0 http://acmeworker.com/BlogContent?type=1038

2018年1月11日升級css

Layui - Xtree 3.0html

此版本包含了前兩個版本全部的功能,同時修復了一些問題,增長了一些功能,以前的版本能夠直接拋棄啦!
本次升級改動較多,參數也有所更改,儘可能別直接覆蓋以前版本,而是當成一個全新的tree插件來對待吧!jquery

 

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

碼雲地址: https://gitee.com/xianglikai1/layui-tree2.0 json

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


效果圖:
undefined異步

 


功能說明:(詳細使用方式在下面的文檔中)
一、常規tree,無層級限制;
二、增長checkbox複選框;
三、兩種數據綁定方式,json數組/異步數據接口,優化了數據格式;
四、節點默認選中狀態;
五、節點是否可用;
六、父級節點擁有其子級節點全選功能;
七、父級節點監聽子級節點選中狀態,並更改自身狀態;
八、加載等待提示;
九、加載完畢後的初始展開狀態;
十、三種節點圖標樣式自定義設置,取自layui圖標;
十一、三種節點圖標顏色自定義配色;
十二、全選框;
1三、全選框狀態更改觸發的監聽事件自定義;
1四、節點狀態更改的監聽事件自定義(節點點擊事件,不包含全選框);
1五、可自動撐起容器高度,容器最小高度100px;
1六、解決單頁面多個xtree衝突的問題;
1七、如layui同樣簡單的使用方式;

提供四種方法:
一、獲取所有[選中的][末級節點]原checkbox DOM對象,返回Array
二、獲取所有原checkbox DOM對象,返回Array
三、經過value值找父級DOM對象,頂級節點與錯誤值均返回null
四、更新數據,從新渲染,無返回值函數


使用文檔:

1、引用
頁面中引用了 layui 的 css 和 js 後,添加引用 layui-xtree.js 一個文件便可,原生js,不依賴jquery。
全部xtree的js代碼均要寫在 layui.use(['form'], function () { **這裏** });

2、容器
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>

3、最簡單的用法,三個必須的參數
elem:放置xtree的容器id,不要帶#號
form:layui的form對象
data:數據,可直接寫json數組,也可寫一個異步接口
數據格式在下面ui

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字符串(數據格式在下面)
});

4、帶所有參數的完整用法:
直接看代碼吧

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對象
}
});

5、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: [] }
]

6、提供的方法
一、獲取所有[選中的][末級節點]原checkbox DOM對象,返回Array

xtree1.GetChecked();

二、獲取所有原checkbox DOM對象,返回Array

xtree1.GetAllCheckBox();

三、經過value值找父級原 checkbox DOM對象,頂級節點與錯誤值均返回null

xtree1.GetParent(‘節點的value值’);

四、更新數據,從新渲染,無返回值

xtree1.render();

結束語:
很抱歉,依然不兼容IE [失望]若是你看代碼會發現我真的是努力過了,水平有限,並未成功兼容,接下來我會繼續嘗試去兼容IE。最後,祝 layui 愈來愈好!

相關文章
相關標籤/搜索