http://www.cnblogs.com/mfc-itblog/p/5233453.html
http://www.htmleaf.com/jQuery/Menu-Navigation/201502141379.html
http://www.htmleaf.com/Demo/201502141380.html
簡要教程
bootstrap-treeview是一款效果非常酷的基于bootstrap的jQuery多級清單樹插件。該jQuery插件基于Twitter Bootstrap,以簡單和優雅的方式來顯示一些繼承樹結構,如視圖樹、清單樹等等。
插件依賴
- Bootstrap v3.0.3
- jQuery v2.0.3
以上兩個外部依賴檔案已經經過測試可以正常使用,其他版本的Bootstrap需要另行測試。該插件不支援bootstrap 2。
使用方法
首先要在頁面中引入依賴檔案和 bootstrap-treeview.js檔案。
|
HTML結構
可以使用任何HTML DOM元素來作為該清單樹的容器:
|
調用插件
該清單樹插件最基本的調用方法如下:
|
資料結構
為了建立樹的繼承結構,需要為該清單樹插件提供一個嵌套結構的js對象。例如:
|
最簡單的樹結構可以隻有一個節點,使用一個帶
text
屬性的js對象來實作即可:
|
如果你需要自定義更多的内容,可以參考下面:
|
節點屬性
下面的參數可用于樹節點的屬性定義,如節點的文本、顔色和标簽等。
參數名稱 | 參數類型 | 參數描述 |
text | String(必選項) | 清單樹節點上的文本,通常是節點右邊的小圖示。 |
icon | String(可選項) | 清單樹節點上的圖示,通常是節點左邊的圖示。 |
selectedIcon | String(可選項) | 當某個節點被選擇後顯示的圖示,通常是節點左邊的圖示。 |
href | String(可選項) | 結合全局enableLinks選項為清單樹節點指定URL。 |
selectable | Boolean. Default: true | 指定清單樹的節點是否可選擇。設定為 将使節點展開,并且不能被選擇。 |
state | Object(可選項) | 一個節點的初始狀态。 |
state.checked | Boolean,預設值 | 訓示一個節點是否處于checked狀态,用一個checkbox圖示表示。 |
state.disabled | Boolean,預設值 | 訓示一個節點是否處于disabled狀态。(不是selectable,expandable或checkable) |
state.expanded | Boolean,預設值 | 訓示一個節點是否處于展開狀态。 |
state.selected | Boolean,預設值 | 訓示一個節點是否可以被選擇。 |
color | String. Optional | 節點的前景色,覆寫全局的前景色選項。 |
backColor | String. Optional | 節點的背景色,覆寫全局的背景色選項。 |
tags | Array of Strings. Optional | 通過結合全局showTags選項來在清單樹節點的右邊添加額外的資訊。 |
全局參數
參數可以定制treeview的預設外觀和行為。參數使用一個對象來在插件初始化時傳入:
|
參數名稱 | 參數類型 | 預設值 | 描述 |
data | Array of Objects | 無 | 清單樹上顯示的資料。 |
backColor | String | 所有合法的顔色值,Default: inherits from Bootstrap.css。 | 設定所有清單樹節點的背景顔色。 |
borderColor | String | 所有合法的顔色值,Default: inherits from Bootstrap.css。 | 設定清單樹容器的邊框顔色,如果不想要邊框可以設定 屬性為false。 |
checkedIcon | String:class名稱 | Bootstrap Glyphicons定義的 "glyphicon glyphicon-check" | 設定處于checked狀态的複選框圖示。 |
collapseIcon | String:class名稱 | Bootstrap Glyphicons定義的 "glyphicon glyphicon-minus" | 設定清單樹可收縮節點的圖示。 |
color | String | 所有合法的顔色值,Default: inherits from Bootstrap.css。 | 設定清單樹所有節點的前景色。 |
emptyIcon | String:class名稱 | Bootstrap Glyphicons定義的"glyphicon"。 | 設定清單樹中沒有子節點的節點的圖示。 |
enableLinks | Boolean | false | 是否使用目前節點的文本作為超連結。超連結的 值必須在每個節點的data結構中給出。 |
expandIcon | String:class名稱 | Bootstrap Glyphicons定義的 "glyphicon glyphicon-plus" | 設定清單樹可展開節點的圖示。 |
highlightSearchResults | Boolean | true | 是否高亮搜尋結果。 |
highlightSelected | Boolean | true | 當選擇節點時是否高亮顯示。 |
onhoverColor | String | 所有合法的顔色值, Default: '#F5F5F5'。 | 設定清單樹的節點在使用者滑鼠滑過時的背景顔色。 |
levels | Integer | Default: 2 | 設定繼承樹預設展開的級别。 |
multiSelect | Boolean | false | 是否可以同時選擇多個節點。 |
nodeIcon | String:class名稱 | Bootstrap Glyphicons定義的 "glyphicon glyphicon-stop" | 設定所有清單樹節點上的預設圖示。 |
selectedIcon | String:class名稱 | Bootstrap Glyphicons定義的 "glyphicon glyphicon-stop" | 設定所有被選擇的節點上的預設圖示。 |
searchResultBackColor | String | 所有合法的顔色值, Default: undefined, inherits。 | 設定搜尋結果節點的背景顔色。 |
searchResultColor | String | 所有合法的顔色值, Default: '#D9534F' | 設定搜尋結果節點的前景顔色。 |
selectedBackColor | String | 所有合法的顔色值, Default: '#428bca' | 設定被選擇節點的背景顔色。 |
selectedColor | String | 所有合法的顔色值, Default: '#FFFFFF'。 | 設定清單樹選擇節點的背景顔色。 |
showBorder | Boolean | true | 是否在節點上顯示邊框。 |
showCheckbox | Boolean | false | 是否在節點上顯示checkboxes。 |
showIcon | Boolean | true | 是否顯示節點圖示。 |
showTags | Boolean | false | 是否在每個節點右邊顯示tags标簽。tag值必須在每個清單樹的data結構中給出。 |
uncheckedIcon | String:class名稱 | Bootstrap Glyphicons定義的 "glyphicon glyphicon-unchecked" | 設定圖示為未選擇狀态的checkbox圖示。 |
可用方法
你可以通過兩種方式來調用方法:
- 1、插件包裝器:插件的包裝器可以作為通路底層方法的代理。 多個參數必須使用數組對象來傳入。
$(
'#tree'
).treeview(
'methodName'
, args)
- 2、直接使用treeview:你可以通過下面兩種方法中的一種來擷取treeview對象執行個體。
//該方法傳回一個treeview的對象執行個體
$(
'#tree'
).treeview(
true
)
.methodName(args);
//對象執行個體也儲存在DOM元素的data中,
//可以使用'treeview'的id來通路它。
$(
'#tree'
).data(
'treeview'
)
.methodName(args);
treeview方法清單
-
:選擇所有的節點。checkAll(options)
觸發$(
'#tree'
).treeview(
'checkAll'
, { silent:
true
});
事件,傳入nodeChecked
來阻止其它事件。silent
-
:選擇指定的節點,接收節點或節點ID。checkNode(node | nodeId, options)
觸發$(
'#tree'
).treeview(
'checkNode'
, [ nodeId, { silent:
true
} ]);
事件,傳入nodeChecked
來阻止其它事件。silent
-
:清空以前的搜尋結果。例如清除它們的高亮狀态。clearSearch()
觸發$(
'#tree'
).treeview(
'clearSearch'
);
事件。searchCleared
-
:折疊所有的節點,折疊整個樹。collapseAll(options)
觸發$(
'#tree'
).treeview(
'collapseAll'
, { silent:
true
});
事件,傳入nodeCollapsed
來阻止其它事件。silent
-
:折疊指定節點和它的子節點。如果不想折疊子節點,可以設定collapseNode(node | nodeId, options)
。{ ignoreChildren: true }
觸發$(
'#tree'
).treeview(
'collapseNode'
, [ nodeId, { silent:
true
, ignoreChildren:
false
} ]);
事件,傳入nodeCollapsed
來阻止其它事件。silent
-
:禁用所有的節點。disableAll(options)
觸發$(
'#tree'
).treeview(
'disableAll'
, { silent:
true
});
事件,傳入nodeDisabled
來阻止其它事件。silent
-
:禁用指定的節點,接收節點或節點ID。disableNode(node | nodeId, options)
觸發$(
'#tree'
).treeview(
'disableNode'
, [ nodeId, { silent:
true
} ]);
事件,傳入nodeDisabled
來阻止其它事件。silent
-
:啟用所有的節點。enableAll(options)
觸發$(
'#tree'
).treeview(
'enableAll'
, { silent:
true
});
事件,傳入nodeEnabled
來阻止其它事件。silent
-
:啟用指定的節點,接收節點或節點ID。enableNode(node | nodeId, options)
觸發$(
'#tree'
).treeview(
'enableNode'
, [ nodeId, { silent:
true
} ]);
事件,傳入nodeEnabled
來阻止其它事件。silent
-
:展開所有的樹節點。也可以展開任何給定級别的樹節點。expandAll(options)
觸發$(
'#tree'
).treeview(
'expandAll'
, { levels: 2, silent:
true
});
事件,傳入nodeExpanded
來阻止其它事件。silent
-
:展開指定的樹節點,接收節點或節點ID。也可以展開任何給定級别的樹節點。expandNode(node | nodeId, options)
觸發$(
'#tree'
).treeview(
'expandNode'
, [ nodeId, { levels: 2, silent:
true
} ]);
事件,傳入nodeExpanded
來阻止其它事件。silent
-
:傳回折疊節點的數組。例如getCollapsed()
。state.expanded = false
$(
'#tree'
).treeview(
'getCollapsed'
, nodeId);
-
:傳回被禁用節點的數組。getDisabled()
$(
'#tree'
).treeview(
'getDisabled'
, nodeId);
-
:傳回可用節點的數組。getEnabled()
$(
'#tree'
).treeview(
'getEnabled'
, nodeId);
-
:傳回所有展開節點的數組。getExpanded()
$(
'#tree'
).treeview(
'getExpanded'
, nodeId);
-
:傳回給定節點ID的單一節點對象。getNode(nodeId)
$(
'#tree'
).treeview(
'getNode'
, nodeId);
-
:傳回給定節點的父節點,如果沒有則傳回undefined。getParent(node | nodeId)
$(
'#tree'
).treeview(
'getParent'
, node);
-
:傳回所有被選擇節點的數組,例如:getSelected()
。state.selected = true
$(
'#tree'
).treeview(
'getSelected'
, nodeId);
-
:傳回給定節點的兄弟節點的數組,如果沒有則傳回undefined。getSiblings(node | nodeId)
$(
'#tree'
).treeview(
'getSiblings'
, node);
-
:傳回沒有被選擇節點的數組。例如:getUnselected()
。state.selected = false
$(
'#tree'
).treeview(
'getUnselected'
, nodeId);
-
:移除清單樹容器。移除附加的事件、附加對象和額外的html元素。remove()
$(
'#tree'
).treeview(
'remove'
);
-
:顯示一個樹節點,展開從這個節點開始到根節點的所有節點。revealNode(node | nodeId, options)
觸發$(
'#tree'
).treeview(
'revealNode'
, [ nodeId, { silent:
true
} ]);
事件,傳入nodeExpanded
來阻止其它事件。silent
-
:搜尋比對是非常的指定樹節點,并高亮它們。傳回配平節點的數組。search(pattern, options)
觸發$(
'#tree'
).treeview(
'search'
, [
'Parent'
, {
ignoreCase:
true
,
// case insensitive
exactMatch:
false
,
// like or equals
revealResults:
true
,
// reveal matching nodes
}]);
事件。searchComplete
-
:選擇一個給定的樹節點,接收節點或節點ID。selectNode(node | nodeId, options)
觸發$(
'#tree'
).treeview(
'selectNode'
, [ nodeId, { silent:
true
} ]);
事件,傳入nodeSelected
來阻止其它事件。silent
-
:切換節點的Check狀态。toggleNodeChecked(node | nodeId, options)
觸發$(
'#tree'
).treeview(
'toggleNodeChecked'
, [ nodeId, { silent:
true
} ]);
事件或nodeChecked
事件,傳入nodeUnchecked
來阻止其它事件。silent
-
:切換一個節點的可用和不可用狀态。toggleNodeDisabled(node | nodeId, options)
觸發$(
'#tree'
).treeview(
'toggleNodeDisabled'
, [ nodeId, { silent:
true
} ]);
事件或nodeDisabled
事件,傳入nodeEnabled
來阻止其它事件。silent
-
:切換一個節點的展開和折疊狀态。toggleNodeExpanded(node | nodeId, options)
觸發$(
'#tree'
).treeview(
'toggleNodeExpanded'
, [ nodeId, { silent:
true
} ]);
事件或nodeExpanded
事件,傳入nodeCollapsed
來阻止其它事件。silent
-
:切換一個節點的選擇狀态。toggleNodeSelected(node | nodeId, options)
觸發$(
'#tree'
).treeview(
'toggleNodeSelected'
, [ nodeId, { silent:
true
} ]);
事件或nodeSelected
事件,傳入nodeUnselected
來阻止其它事件。silent
-
:Uncheck所有的節點。uncheckAll(options)
觸發$(
'#tree'
).treeview(
'uncheckAll'
, { silent:
true
});
事件,傳入nodeUnchecked
來阻止其它事件。silent
-
:Uncheck一個給定的節點,接收節點或節點ID。uncheckNode(node | nodeId, options)
觸發$(
'#tree'
).treeview(
'uncheckNode'
, [ nodeId, { silent:
true
} ]);
事件,傳入nodeUnchecked
來阻止其它事件。silent
-
:不選擇指定的節點,接收節點或節點ID。unselectNode(node | nodeId, options)
觸發$(
'#tree'
).treeview(
'unselectNode'
, [ nodeId, { silent:
true
} ]);
事件,傳入nodeUnselected
來阻止其它事件。silent
事件
你可以在參數中使用回調函數來綁定任何事件,或者使用标準的jQuery
.on()
方法來綁定事件。
在參數中調用的示例:
|
使用jQuery
.on
方法:
|
可用事件清單
-
:一個節點被checked。nodeChecked (event, node)
-
:一個節點被折疊。nodeCollapsed (event, node)
-
:一個節點被禁用。nodeDisabled (event, node)
-
:一個節點被啟用。nodeEnabled (event, node)
-
:一個節點被展開。nodeExpanded (event, node)
-
:一個節點被選擇。nodeSelected (event, node)
-
:一個節點被unchecked。nodeUnchecked (event, node)
-
:取消選擇一個節點。nodeUnselected (event, node)
-
:搜尋完成之後觸發。searchComplete (event, results)
-
:搜尋結果被清除之後觸發。searchCleared (event, results)
本文版權屬于jQuery之家,轉載請注明出處:http://www.htmleaf.com/jQuery/Menu-Navigation/201502141379.html