jQuery zTree樹插件簡單使用教程
前言
zTree 是一個(gè)依靠 jQuery 實(shí)現(xiàn)的多功能 “樹插件”。優(yōu)異的性能、靈活的配置、多種功能的組合是 zTree 最大優(yōu)點(diǎn)。
支持靜態(tài) 和 Ajax 異步加載節(jié)點(diǎn)數(shù)據(jù).
在開發(fā)中我們常需要用到樹狀的展示.
下載地址:zTree
靜態(tài)zTree開發(fā)流程
引入資源
<link rel="stylesheet" href="../../../css/zTreeStyle/zTreeStyle.css" type="text/css"> <script type="text/javascript" src="../../../js/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="../../../js/jquery.ztree.core.js"></script>
html元素
<div> <ul id="treeDemo" class="ztree"></ul> </div>
JS方式一-簡單json數(shù)據(jù)格式
<SCRIPT type="text/javascript">
<!--
var setting = {
data: {
simpleData: {
enable: true
}
}
};
var zNodes =[
{ id:1, pId:0, name:"父節(jié)點(diǎn)1 - 展開", open:true},
{ id:11, pId:1, name:"父節(jié)點(diǎn)11 - 折疊"},
{ id:111, pId:11, name:"葉子節(jié)點(diǎn)111"},
{ id:112, pId:11, name:"葉子節(jié)點(diǎn)112"},
{ id:113, pId:11, name:"葉子節(jié)點(diǎn)113"},
{ id:114, pId:11, name:"葉子節(jié)點(diǎn)114"},
{ id:12, pId:1, name:"父節(jié)點(diǎn)12 - 折疊"},
{ id:121, pId:12, name:"葉子節(jié)點(diǎn)121"},
{ id:122, pId:12, name:"葉子節(jié)點(diǎn)122"},
{ id:123, pId:12, name:"葉子節(jié)點(diǎn)123"},
{ id:124, pId:12, name:"葉子節(jié)點(diǎn)124"},
{ id:13, pId:1, name:"父節(jié)點(diǎn)13 - 沒有子節(jié)點(diǎn)", isParent:true},
{ id:2, pId:0, name:"父節(jié)點(diǎn)2 - 折疊"},
{ id:21, pId:2, name:"父節(jié)點(diǎn)21 - 展開", open:true},
{ id:211, pId:21, name:"葉子節(jié)點(diǎn)211"},
{ id:212, pId:21, name:"葉子節(jié)點(diǎn)212"},
{ id:213, pId:21, name:"葉子節(jié)點(diǎn)213"},
{ id:214, pId:21, name:"葉子節(jié)點(diǎn)214"},
{ id:22, pId:2, name:"父節(jié)點(diǎn)22 - 折疊"},
{ id:221, pId:22, name:"葉子節(jié)點(diǎn)221"},
{ id:222, pId:22, name:"葉子節(jié)點(diǎn)222"},
{ id:223, pId:22, name:"葉子節(jié)點(diǎn)223"},
{ id:224, pId:22, name:"葉子節(jié)點(diǎn)224"},
{ id:23, pId:2, name:"父節(jié)點(diǎn)23 - 折疊"},
{ id:231, pId:23, name:"葉子節(jié)點(diǎn)231"},
{ id:232, pId:23, name:"葉子節(jié)點(diǎn)232"},
{ id:233, pId:23, name:"葉子節(jié)點(diǎn)233"},
{ id:234, pId:23, name:"葉子節(jié)點(diǎn)234"},
{ id:3, pId:0, name:"父節(jié)點(diǎn)3 - 沒有子節(jié)點(diǎn)", isParent:true}
];
$(document).ready(function(){
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
});
//-->
</SCRIPT>
JS方式二-標(biāo)準(zhǔn)json數(shù)據(jù)格式
<SCRIPT type="text/javascript">
<!--
var setting = { };
var zNodes =[
{ name:"父節(jié)點(diǎn)1 - 展開", open:true,
children: [
{ name:"父節(jié)點(diǎn)11 - 折疊",
children: [
{ name:"葉子節(jié)點(diǎn)111"},
{ name:"葉子節(jié)點(diǎn)112"},
{ name:"葉子節(jié)點(diǎn)113"},
{ name:"葉子節(jié)點(diǎn)114"}
]},
{ name:"父節(jié)點(diǎn)12 - 折疊",
children: [
{ name:"葉子節(jié)點(diǎn)121"},
{ name:"葉子節(jié)點(diǎn)122"},
{ name:"葉子節(jié)點(diǎn)123"},
{ name:"葉子節(jié)點(diǎn)124"}
]},
{ name:"父節(jié)點(diǎn)13 - 沒有子節(jié)點(diǎn)", isParent:true}
]},
{ name:"父節(jié)點(diǎn)2 - 折疊",
children: [
{ name:"父節(jié)點(diǎn)21 - 展開", open:true,
children: [
{ name:"葉子節(jié)點(diǎn)211"},
{ name:"葉子節(jié)點(diǎn)212"},
{ name:"葉子節(jié)點(diǎn)213"},
{ name:"葉子節(jié)點(diǎn)214"}
]},
{ name:"父節(jié)點(diǎn)22 - 折疊",
children: [
{ name:"葉子節(jié)點(diǎn)221"},
{ name:"葉子節(jié)點(diǎn)222"},
{ name:"葉子節(jié)點(diǎn)223"},
{ name:"葉子節(jié)點(diǎn)224"}
]},
{ name:"父節(jié)點(diǎn)23 - 折疊",
children: [
{ name:"葉子節(jié)點(diǎn)231"},
{ name:"葉子節(jié)點(diǎn)232"},
{ name:"葉子節(jié)點(diǎn)233"},
{ name:"葉子節(jié)點(diǎn)234"}
]}
]},
{ name:"父節(jié)點(diǎn)3 - 沒有子節(jié)點(diǎn)", isParent:true}
];
$(document).ready(function(){
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
});
//-->
</SCRIPT>
異步zTree加載
前面的配置相同,在此不再闡述.主要是js不同.
異步JS
var setting = {
//可勾選
check: {
enable: true
},
data : {
simpleData : {
enable : true
}
}
};
function initTree(){
var payFreq = $("#payFreq").val();
var fyType = $('#fyType').val();
var setHzType = $('#setHzType').val();
$.ajax({
url : "/demo/initTree",
data : {payFreq:payFreq,
fyType:fyType,
setHzType:setHzType
},
success: function(object){
var nodes = "";
//拼接simple格式的json字符串
$.each(object.data, function(i,item) {
nodes+="{id:'"+item.id+"', pId:'"+item.pid+"', name:'"+item.name+"', isParent:'"+item.isParent+"'},";
});
var zNodes = "["+nodes+"]";
var json = eval('(' + zNodes + ')');
//console.log(json);
zTreeInit(json);
}
});
}
/* 初始化樹 */
function zTreeInit(json) {
$.fn.zTree.init($("#treeDemo"), setting, json);
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
//全部展開
zTree.expandAll(true);
//Y代表勾選時(shí),N代表取消勾選 p代表父節(jié)點(diǎn),s代表字節(jié)點(diǎn)
setting.check.chkboxType = { "Y" : "ps", "N" : "ps" };
}
java代碼
Controller層
@RequestMapping("initTree")
@ResponseBody
public DataMessage initTree(String setHzType,String payFreq,String fyType){
params.put("setHzType", setHzType);
params.put("fyType", fyType);
params.put("fkmattr_xt", fkmattr_xt);
//獲取treeinfo列表
List<TreeInfo> treeInfos = feeTransferService.initTree(params);
return DataMessage.successData(treeInfos);
}
tree實(shí)體類
public class TreeInfo {
private String id;
private String pid;
private String name;
private String isParent;
}
說明
更多實(shí)例可以參看zTree中文文檔
或參見zTree GitHub 里面更多的示例和說明。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JQuery實(shí)現(xiàn)當(dāng)鼠標(biāo)停留在某區(qū)域3秒后自動執(zhí)行
這篇文章主要介紹了JQuery實(shí)現(xiàn)當(dāng)鼠標(biāo)停留在某區(qū)域3秒后自動執(zhí)行,可以應(yīng)用于很多場景,需要的朋友可以參考下2014-09-09
Jquery實(shí)現(xiàn)兼容各大瀏覽器的Enter回車切換輸入焦點(diǎn)的方法
本文主要講解的是在做項(xiàng)目中遇到需要Enter回車切換輸入焦點(diǎn)的解決思路以及最終解決方案,很簡單,需要的朋友可以參考下2014-09-09
jquery.tableSort.js表格排序插件使用方法詳解
這篇文章主要為大家詳細(xì)介紹了jquery.tableSort.js表格排序插件使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02
jQuery實(shí)現(xiàn)ctrl+enter(回車)提交表單
本文章來給大家介紹在我們輸入完內(nèi)容之后直接按Ctrl+Enter提交表單實(shí)現(xiàn)程序,此方法一般是用于textarea中哦,其它的input這類的就不需了。2015-10-10
jQuery學(xué)習(xí)筆記(2)--用jquery實(shí)現(xiàn)各種模態(tài)提示框代碼及項(xiàng)目構(gòu)架
想實(shí)現(xiàn)一個(gè)模態(tài)的框框,找了很多的jquery插件,都沒有碰到自己滿意的于是自己摸索了一個(gè),接下來為大家介紹下實(shí)現(xiàn)的思路及代碼,希望對你有所幫助2013-04-04
jquery $(document).ready() 與window.onload的區(qū)別
Jquery中$(document).ready()的作用類似于傳統(tǒng)JavaScript中的window.onload方法,不過與window.onload方法還是有區(qū)別的。2009-12-12
使用基于jquery的gamequery插件做JS乒乓球游戲
現(xiàn)在jquery比較流行,用js做游戲的也越來越多了,雖然現(xiàn)在html5出來了,但實(shí)際上要用html5做點(diǎn)啥出來還是得靠javascript,所以學(xué)好js是非常重要的2011-07-07

