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 參數包含下列特性: |
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 |
當節點被拖拽施放時觸發。 |
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 參數有兩個特性: |
toggle |
target |
切換節點的展開/折疊狀態, target 參數表示節點的 DOM 對象。 |
insert |
param |
在指定節點的前邊或后邊插入一個節點, param 參數包含下列特性: |
remove |
target |
移除一個節點和它的子節點們, target 參數表示節點的 DOM 對象。 |
pop |
target |
彈出一個節點和它的子節點們,此方法和 remove 一樣,但是返回了移除的節點數據。 |
update |
param |
跟心指定的節點, param 參數有下列特性: |
enableDnd |
none |
啟用拖放功能。 |
disableDnd |
none |
禁用拖放功能。 |
beginEdit |
nodeEl |
開始編輯節點。 |
endEdit |
nodeEl |
結束編輯節點。 |
cancelEdit |
nodeEl |
取消編輯節點。 |