(转)jQuery LigerUI 插件介绍及使用之ligerTree
一,简介
ligerTree的功能列表:
1,支持本地数据和服务器数据(配置data或者url)
2,支持原生html生成Tree
3,支持动态获取增加/修改/删除节点
4,支持大部分常见的事件
5,支持获取选中行等常见的接口方法
二,第一个例子
引入库文件
遵循LigerUI系列插件的设计原则(插件尽量单独),ligerTree是一个单独的插件,也就是说只需要引入plugins/ligerTree.js和样式css文件就可以使用(当然必须先引入jQuery),在这个例子中,我把tree用到的样式和图片分离了出来,有兴趣的朋友可以下载来看看
<link href="lib/ligerUI/skins/Aqua/css/ligerui-tree.css" rel="stylesheet" type="text/css"/>
<script src="lib/ligerUI/js/plugins/ligerTree.js" type="text/javascript"></script>
加入HTML

<li>
<span>节点1</span>
<ul>
<li>
<span>节点1.1</span>
<ul>
<li><span>节点1.1.1</span></li>
<li><span>节点1.1.2</span></li>
</ul>
</li>
<li><span>节点1.2</span></li>
</ul>
</li>
</ul>

调用ligerTree
$("#tree1").ligerTree();  | 
效果图

三,常用场景
场景一:不使用复选框:
场景二:不使用复习框和图标:
效果如图:

场景三:配置data参数加载树:

{ text: '节点1', children: [
{ text: '节点1.1' },
{ text: '节点1.2' },
{ text: '节点1.3', children: [
{ text: '节点1.3.1' },
{ text: '节点1.3.2' }
]
},
{ text: '节点1.4' }
]
},
{ text: '节点2' },
{ text: '节点3' },
{ text: '节点4' }
]
});

场景四:配置url参数加载树:
场景五:动态增加节点:

$(function ()
{
$(".l-tree").ligerTree({ checkbox: true });
manager = $(".l-tree").ligerGetTreeManager();
});
function addTreeItem()
{
var node = manager.getSelected();
var nodes = [];
nodes.push({ text: ‘测试节点’});
if (node)
manager.append(node.target, nodes);
else
manager.append(null, nodes);
}

场景六:删除节点:

{
var node = manager.getSelected();
if (node)
manager.remove(node.target);
else
alert('请先选择节点');
}

场景七:折叠/展开节点:

{
manager.collapseAll();
}
function expandAll()
{
manager.expandAll();
}

场景八:事件支持:

{
$("#tree1").ligerTree(
{
url: 'json.txt',
onBeforeExpand: onBeforeExpand,
onExpand: onExpand,
onBeforeCollapse: onBeforeCollapse,
onCollapse: onCollapse,
onBeforeSelect: onBeforeSelect,
onSelect: onSelect,
onCheck: onCheck
});
});
function onBeforeSelect(note)
{
alert('onBeforeSelect:'+ note.data.text);
returntrue;
}
function onSelect(note)
{
alert('onSelect:'+ note.data.text);
}
function onBeforeExpand(note)
{
alert('onBeforeExpand:'+ note.data.text);
}
function onExpand(note)
{
alert('onExpand:'+ note.data.text);
}
function onBeforeCollapse(note)
{
alert('onBeforeCollapse:'+ note.data.text);
}
function onCollapse(note)
{
alert('onCollapse:'+ note.data.text);
}
function onCheck(note, checked)
{
alert('onCheck:'+ note.data.text +" checked:"+ checked);
}

场景九:异步动态加载节点

$(function ()
{
$("#tree1").ligerTree(
{
url: 'json.txt',
onBeforeExpand: onBeforeExpand
});
manager = $("#tree1").ligerGetTreeManager();
});
function onBeforeExpand(note)
{
if (note.data.children && note.data.children.length ==0)
{
//这里模拟一个加载节点的方法,append方法也用loadData(target,url)代替
manager.append(note.target, [
{ text: note.data.text +"'s child1" },
{ text: note.data.text +"'s child2" },
{ text: note.data.text +"'s child3" }
]);
}
}

四,API文档
- 描述:
 
- 使一段html配置为树结构。
 
- 参数列表:
 
| 参数名 | 类型 | 描述 | 默认值 | 
| p | {Object} | 主要参数 | |
| p.url | {String} | 设置一个url用于加载数据 | null | 
| p.method | {String} | 提交数据的方式 | 'POST' | 
| p.data | {String} | 设置一个本地数据data用于加载数据 | null | 
| p.checkbox | {Bool} | 是否显示复选框 | true | 
| p.parentIcon | {String} | 非叶节点的图标 | 'folder' | 
| p.childIcon | {String} | 叶节点的图标 | 'leaf' | 
| p.attribute | {Array} | 属性,获取行数据时很有作用 | ['id','url'] | 
| p.nodeWidth | {Int} | 节点的宽度 | 70 | 
| p.onBeforeExpand | {Function} | 展开前事件,可以通过返回false来阻止继续展开
  | 
null | 
| p.onExpand | {Function} | 展开事件
  | 
null | 
| p.onBeforeCollapse | {Function} | 折叠前事件,可以通过返回false来阻止继续折叠
  | 
null | 
| p.onCollapse | {Function} | 折叠事件
  | 
null | 
| p.onBeforeSelect | {Function} | 选择前事件,可以通过返回false来阻止继续选择
  | 
null | 
| p.onSelect | {Function} | 选择事件
  | 
null | 
| p.onCheck | {Function} | 复选框事件
  | 
null | 
| p.onSuccess | {Function} | 异步加载数据成功事件 | null | 
| p.onError | {Function} | 异步加载数据失败事件
  | 
null | 
- 返回值:
 - {jQuery} jQuery对象
 
| 
 append(parentNode, newdata) 
  | 
| 
 clear() 
  | 
  | 
| 
 demotion(treenode) 
  | 
  | 
  | 
| 
 getData() 
  | 
| 
 getParentTreeItem(treenode, level) 
  | 
  | 
| 
 hasChildren(treenode) 
  | 
| 
 | 
| 
 loadData(node, url, param) 
  | 
| 
 remove(node) 
  | 
| 
 upgrade(treenode) 
  | 
- 描述:
 
- 增加节点集合
 
- 参数列表:
 
| 参数名 | 类型 | 描述 | 默认值 | 
| parentNode | {Object} | 节点(DOM 对象 标签为li),加载的数据将增加到这个节点下面 | |
| newdata | {Array} | 节点数据的集合,该参数为数组 | 
- 描述:
 
- 清空
 
- 描述:
 
- 全部节点都折叠
 
- 描述:
 
- 降级为叶节点级别
 
- 参数列表:
 
| 参数名 | 类型 | 描述 | 默认值 | 
| treenode | {Object} | 节点(DOM 对象 标签为li) | 
- 描述:
 
- 全部节点都展开
 
- 描述:
 
- 获取选择的行(复选框)
 
- 返回值:
 - {Array} Nodes 每一个Node包括的参数有:data(数据源),target(DOM 对象 标签为li)
 
- 描述:
 
- 获取树的数据源
 
- 返回值:
 - {Array} Tree Data Object
 
- 描述:
 
- 获取父节点
 
- 参数列表:
 
| 参数名 | 类型 | 描述 | 默认值 | 
| treenode | {Object} | 节点(DOM 对象 标签为li) | |
| level | {Object} | 获取第N级别的父节点(选填,不填时表示上一级父节点) | 
- 返回值:
 - {Bool} hasChildren
 
- 描述:
 
- 获取选择的行
 
- 返回值:
 - {Object} Node 节点包括的参数有:data(数据源),target(DOM 对象 标签为li)
 
- 描述:
 
- 是否包含子节点
 
- 参数列表:
 
| 参数名 | 类型 | 描述 | 默认值 | 
| treenode | {Object} | 节点(DOM 对象 标签为li) | 
- 返回值:
 - {Bool} hasChildren
 
- 描述:
 
- 加载数据
 
- 参数列表:
 
| 参数名 | 类型 | 描述 | 默认值 | 
| node | {Object} | 节点(DOM 对象 标签为li),加载的数据将增加到这个节点下面 | |
| url | {String} | 要加载数据的URL | |
| param | {String} | 提交数据的附件的参数 | 
- 描述:
 
- 删除节点
 
- 参数列表:
 
| 参数名 | 类型 | 描述 | 默认值 | 
| node | {Object} | 节点(DOM 对象 标签为li) | 
- 描述:
 
- 升级为父节点级别
 
- 参数列表:
 
| 参数名 | 类型 | 描述 | 默认值 | 
| treenode | {Object} | 节点(DOM 对象 标签为li) | 
- 五,Demo下载
 
点击下载(已更新源码地址)更多的文档和API后面会渐渐补充,浏览更多的应用请访问http://demo.LigerUI.com
 Genius Zhang  | 2011-04-18 09:22
 longhua828  | 2011-06-27 14:33var manager = null;
$(function ()
{
manager = $("#tree1").ligerTree({ url: '/Module/ModuleService.aspx?source=LigerTree' });
});
服务端返回数据:
[
{ text: "节点1", children: [
{ text: "节点1.1" },
{ text: "节点1.2" },
{ text: "节点1.3", children: [
{ text: "节点1.3.1" ,children: [
{ text: "节点1.3.1.1" },
{ text: "节点1.3.1.2" }]
},
{ text: "节点1.3.2" }
]
},
{ text: "节点1.4" }
]
},
{ text: "节点2" },
{ text: "节点3" },
{ text: "节点4" }
]
 cxlong_beta  | 2011-08-08 18:59
 Rock_Choke  | 2012-10-11 18:13(转)jQuery LigerUI 插件介绍及使用之ligerTree的更多相关文章
- jQuery.Form插件介绍
		
一.前言 jQuery From插件是一个优秀的Ajax表单插件,使用它可以让你非常容易地.无侵入地升级HTML表单以支持Ajax.jQuery From有两个主要方法:ajaxForm和ajaxS ...
 - jQuery Fancybox插件介绍
		
下面介绍一款jquery图片播放插件叫Fancybox,项目主页地址:http://fancybox.net/ Fancybox的特点如下: 1.可以支持图片.html文本.flash动画.ifram ...
 - C#结合Jquery LigerUI Tree插件构造树
		
Jquery LigerUI Tree是Jquery LigerUI()的插件之一,使用它可以快速的构建树形菜单.呵呵 废话不说了,直入正题,下面介绍C#结合ligerui 构造树形菜单的两种方法 1 ...
 - jquery.form.js官方插件介绍Form插件,支持Ajax,支持Ajax文件上传
		
jquery.form.js官方插件介绍Form插件,支持Ajax,支持Ajax文件上传 http://www.malsup.com/jquery/form/#getting-started [JQu ...
 - [jQuery]jQuery DataTables插件自定义Ajax分页实现
		
前言 昨天在博客园的博问上帮一位园友解决了一个问题,我觉得有必要记录一下,万一有人也遇上了呢. 问题描述 园友是做前端的,产品经理要求他使用jQuery DataTables插件显示一个列表,要实现分 ...
 - 使用jQuery.form插件,实现完美的表单异步提交
		
传送门:异步编程系列目录…… 时间真快,转眼一个月快结束了,一个月没写博客了!手开始生了,怎么开始呢…… 示例下载:使用jQuery.form插件,实现完美的表单异步提交.rar 月份的尾巴,今天的主 ...
 - 基于jquery fly插件实现加入购物车抛物线动画效果,jquery.fly.js
		
在购物网站中,加入购物车的功能是必须的功能,有的网站在用户点击加入购物车按钮时,就会出现该商品从点击出以抛物线的动画相似加入购物车,这个功能看起来非常炫,对用户体验也有一定的提高.下面介绍基于jque ...
 - html5网页动画总结--jQuery旋转插件jqueryrotate
		
CSS3 提供了多种变形效果,比如矩阵变形.位移.缩放.旋转和倾斜等等,让页面更加生动活泼有趣,不再一动不动.然后 IE10 以下版本的浏览器不支持 CSS3 变形,虽然 IE 有私有属性滤镜(fil ...
 - 基于jQuery HTML5人物介绍卡片特效
		
基于jQuery HTML5人物介绍卡片特效.这是一款基于jquery.material-cards插件实现的人物介绍卡片形式特效代码.效果图如下: 在线预览 源码下载 实现的代码. html代码 ...
 
随机推荐
- 最全CSS3选择器
			
一,CSS3 选择器分类 二,选择器语法 1,基本选择器语法 选择器 类型 功能描述 * 通配选择器 选择文档中所以HTML元素 E 元素选择器 选择指定类型的HTML元素 #id ID选择器 ...
 - Day6 反射、模块、正则表达式和算法
			
递归完成阶乘 def func(num): if num == 1: return 1 return num * func(num - 1) x = func(7) print(x) 反射 commo ...
 - HTML&CSS基础学习笔记1.31-像素和相对长度
			
像素和相对长度 之前的笔记中,我们提到过用属性width.height来设置图片的尺寸,它们的单元都是”px(像素)”.长度单位总结一下,目前比较常用到px(像素).em.% 百分比,要注意其实这三种 ...
 - type和instance
			
获取对象类型 type(object) >>> test_data = [1, 2, 3] >>> type(test_data) <type 'list'& ...
 - window.location.href/replace/reload()--页面跳转+替换+刷新
			
一.最外层top跳转页面,适合用于iframe框架集 top.window.location.href("${pageContext.request.contextPath}/Login_g ...
 - access数据库管理软件收集下载
			
access百科 Microsoft Office Access是由微软发布的关系数据库管理系统.它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Mi ...
 - Linux内核实现多路镜像流量聚合和复制
			
Linux内核实现多路镜像流量聚合和复制: http://www.freebuf.com/tools/44308.html
 - zoj 3787 Access System
			
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5274 #include <cstdio> #include < ...
 - Delphi 缩放图像代码 - 支持PNG透明通道(利用了Windows的windowscodecs.dll)
			
要求Delphi2007或者更高版本, 系统要求至少XP-SP2以上 实际上是利用了Windows的windowscodecs.dll这个文件的功能 在VCL里已经封装为TWICImage类 proc ...
 - 三个QT咨询公司以及QT5.0的主要特点
			
三个咨询公司(他们也贡献代码):http://www.kdab.com/http://v-play.net/http://www.ics.com/qt 一个论坛:http://forum.qt.io/ ...
 
			
		
 posted on 2011-04-17 23:35