Tree 树
用 $.fn.tree.defaults 重写了 defaults。
依赖
- draggable
- droppable
用法
Tree 能在 <ul> 元素里定义,此标记可以定义为叶节点和子节点。下面是一个示例:
1. <ul id="tt">
2. <li>
3. <span>Folder</span>
4. <ul>
5. <li>
6. <span>Sub Folder 1</span>
7. <ul>
8. <li>
9. <span><a href="#">File 11</a></span>
10. </li>
11. <li>
12. <span>File 12</span>
13. </li>
14. <li>
15. <span>File 13</span>
16. </li>
17. </ul>
18. </li>
19. <li>
20. <span>File 2</span>
21. </li>
22. <li>
23. <span>File 3</span>
24. </li>
25. </ul>
26. </li>
27. <li>
28. <span>File21</span>
29. </li>
30. </ul>
Tree 也可以在一个空的 <ul> 元素里定义。
1. <ul id="tt"></ul>
1. $('#tt').tree({
2. url:'tree_data.json'
3. });
树数据的格式(Tree data format)
每个节点可以包含下列特性:
- id:节点的 id,它对于加载远程数据很重要。
- text:显示的节点文字。
- state:节点状态, 'open' 或 'closed',默认是 'open'。当设为 'closed' 时,此节点有子节点,并且将从远程站点加载它们。
- checked:指示节点是否被选中。 Indicate whether the node is checked selected.
- attributes:给一个节点追加的自定义属性。
- children:定义了一些子节点的节点数组。
示例:
1. [{
2. "id":1,
3. "text":"Folder1",
4. "iconCls":"icon-save",
5. "children":[{
6. "text":"File1",
7. "checked":true
8. },{
9. "text":"Books",
10. "state":"open",
11. "attributes":{
12. "url":"/demo/book/abc",
13. "price":100
14. },
15. "children":[{
16. "text":"PhotoShop",
17. "checked":true
18. },{
19. "id": 8,
20. "text":"Sub Bookds",
21. "state":"closed"
22. }]
23. }]
24. },{
25. "text":"Languages",
26. "state":"closed",
27. "children":[{
28. "text":"Java"
29. },{
30. "text":"C#"
31. }]
32. }]
特性
名称 | 类型 | 说明 | 默认值 |
url | string | 获取远程数据的 URL 。 | null |
method | string | 获取数据的 http method 。 | post |
animate | boolean | 定义当节点展开折叠时是否显示动画效果。 | false |
checkbox | boolean | 定义是否在每个节点前边显示 checkbox 。 | false |
cascadeCheck | boolean | 定义是否级联检查。 | true |
onlyLeafCheck | boolean | 定义是否只在叶节点前显示 checkbox 。 | false |
dnd | boolean | 定义是否启用拖放。 | false |
data | array | 加载的节点数据。 | null |
事件
很多事件的回调函数需要 'node' 函数,它包含下列特性:
- id:绑定到节点的标识值。
- text:显示的文字。
- checked:是否节点被选中。
- attributes:绑定到节点的自定义属性。
- target:目标的 DOM 对象。
名称 | 参数 | 说明 |
onClick | node | 当用户点击一个节点时触发, node 参数包含下列特性:id:节点的 idtext:节点的文字checked:节点是否被选中attributes:节点自定义属性target:被点击目标的 DOM 对象 |
onDblClick | node | 当用户双击一个节点时触发。 |
onBeforeLoad | node, param | 当加载数据的请求发出前触发,返回 false 就取消加载动作。 |
onLoadSuccess | node, data | 当数据加载成功时触发。 |
onLoadError | arguments | 当数据加载失败时触发, arguments 参数与 jQuery.ajax 的'error' 函数一样。. |
onBeforeExpand | node | 节点展开前触发,返回 false 就取消展开动作。 |
onExpand | node | 当节点展开时触发。 |
onBeforeCollapse | node | 节点折叠前触发,返回 false 就取消折叠动作。 |
onCollapse | node | 当节点折叠时触发。 |
onCheck | node, checked | 当用户点击 checkbox 时触发。 |
onBeforeSelect | node | 节点被选中前触发,返回 false 就取消选择动作。 |
onSelect | node | 当节点被选中时触发。 |
onContextMenu | e, node | 当右键点击节点时触发。 |
onDrop | target, source, point | 当节点被拖拽施放时触发。target:DOM 对象,拖放的目标节点。source:源节点。point:表示拖放操作,可能是值是: 'append'、'top' 或 'bottom'。 |
onBeforeEdit | node | 编辑节点前触发。 |
onAfterEdit | node | 编辑节点后触发。 |
onCancelEdit | node | 当取消编辑动作时触发。 |
方法
名称 | 参数 | 说明 |
options | none | 返回树的 options。 |
loadData | data | 加载树的数据。 |
getNode | target | 获取指定的节点对象。 |
getData | target | 获取指定的节点数据,包括它的子节点。 |
reload | target | 重新加载树的数据。 |
getRoot | none | 获取根节点,返回节点对象。 |
getRoots | none | 获取根节点们,返回节点数组。 |
getParent | target | 获取父节点, target 参数指节点的 DOM 对象。 |
getChildren | target | 获取子节点, target 参数指节点的 DOM 对象。 |
getChecked | none | 获取所有选中的节点。 |
getSelected | none | 获取选中的节点并返回它,如果没有选中节点,就返回 null。 |
isLeaf | target | 把指定的节点定义成叶节点, target 参数表示节点的 DOM 对象。 |
find | id | 找到指定的节点并返回此节点对象。 |
select | target | 选中一个节点, target 参数表示节点的 DOM 对象。 |
check | target | 把指定节点设置为勾选。 |
uncheck | target | 把指定节点设置为未勾选。 |
collapse | target | 折叠一个节点, target 参数表示节点的 DOM 对象。 |
expand | target | 展开一个节点, target 参数表示节点的 DOM 对象。 |
collapseAll | target | 折叠所有的节点们。 |
expandAll | target | 展开所有的节点们。 |
expandTo | target | 从指定节点的根部展开。 |
append | param | 追加一些子节点们到一个父节点, param 参数有两个特性:parent:DOM 对象,追加到的父节点,如果没有分配,则追加为根节点。data:数组,节点们的数据。 |
toggle | target | 切换节点的展开/折叠状态, target 参数表示节点的 DOM 对象。 |
insert | param | 在指定节点的前边或后边插入一个节点, param 参数包含下列特性:before:DOM 对象,前边插入的节点。after:DOM 对象,后边插入的节点。data:对象,节点数据。 |
remove | target | 移除一个节点和它的子节点们, target 参数表示节点的 DOM 对象。 |
pop | target | 弹出一个节点和它的子节点们,此方法和 remove 一样,但是返回了移除的节点数据。 |
update | param | 跟心指定的节点, param 参数有下列特性:target(DOM 对象,被更新的节点)、id、text、iconCls、checked、等等。 |
enableDnd | none | 启用拖放功能。 |
disableDnd | none | 禁用拖放功能。 |
beginEdit | nodeEl | 开始编辑节点。 |
endEdit | nodeEl | 结束编辑节点。 |
cancelEdit | nodeEl | 取消编辑节点。 |