天天看點

樹莓派安裝python3.5_Easyui Tree 樹_EasyUI 插件

通過 $.fn.tree.defaults 重寫預設的 defaults。

樹(tree)在網頁中以樹形結構顯示分層資料。它向使用者提供展開、折疊、拖拽、編輯和異步加載功能。

樹莓派安裝python3.5_Easyui Tree 樹_EasyUI 插件

依賴 draggable

droppable

用法

樹(tree)定義在

  • 元素中。該标記可定義葉節點和子節點。節點将是 ul 清單内的
  • 元素。下面示範了将被用于制作嵌套在 ul 元素内的樹節點的元素。
  • Folder
  • Sub Folder 1
  • File 11

File 12

File 13

File 2

File 3

File21

樹(Tree)也可以在一個空的

  • 元素中定義,可使用 javascript 加載資料。

$('#tt').tree({

url:'tree_data.json'

});

使用 loadFilter 來處理來自 ASP.NET web 服務的 json 資料。 $('#tt').tree({

url: ...,

loadFilter: function(data){

if (data.d){

return data.d;

} else {

return data;

}

}

});

樹的資料格式(Tree Data Format)

每個節點可以包括下列屬性: id:節點的 id,它對于加載遠端資料很重要。

text:要顯示的節點文本。

state:節點狀态,'open' 或 'closed',預設是 'open'。當設定為 'closed' 時,該節點有子節點,并且将從遠端站點加載它們。

checked:訓示節點是否被選中。

attributes:給一個節點添加的自定義屬性。

children:定義了一些子節點的節點數組。

執行個體: [{

"id":1,

"text":"Folder1",

"iconCls":"icon-save",

"children":[{

"text":"File1",

"checked":true

},{

"text":"Books",

"state":"open",

"attributes":{

"url":"/demo/book/abc",

"price":100

},

"children":[{

"text":"PhotoShop",

"checked":true

},{

"id": 8,

"text":"Sub Bookds",

"state":"closed"

}]

}]

},{

"text":"Languages",

"state":"closed",

"children":[{

"text":"Java"

},{

"text":"C#"

}]

}]

異步樹

樹支援内置的異步加載模式,是以使用者可以建立一個空的樹,然後指定一個動态傳回 JSON 資料的伺服器端,用于根據需求異步填充樹。下面是一個執行個體:

樹是通過 URL 'get_data.php' 加載的。子節點依賴于父節點狀态被加載。當展開一個關閉的節點時,如果該節點沒有子節點加載,它将通過上面定義的 URL 向伺服器發送節點的 id 值作為名為 'id' 的 http 請求參數,以便檢索子節點。

請看從伺服器傳回的資料: [{

"id": 1,

"text": "Node 1",

"state": "closed",

"children": [{

"id": 11,

"text": "Node 11"

},{

"id": 12,

"text": "Node 12"

}]

},{

"id": 2,

"text": "Node 2",

"state": "closed"

}]

節點 1 和節點 2 是關閉的,當展開節點 1 時,将直接展示它的子節點。當展開節點 2 時,将向伺服器發送 value(2) 以便檢索子節點。

本教程中的 建立異步樹 示範了如何編寫伺服器代碼來根據需求傳回樹的資料。

屬性

名稱 類型 描述 預設值

url string 擷取遠端資料的 URL 。 null

method string 檢索資料的 http 方法(method)。 post

animate boolean 定義當節點展開折疊時是否顯示動畫效果。 false

checkbox boolean 定義是否在每個節點前邊顯示複選框。 false

cascadeCheck boolean 定義是否級聯檢查。 true

onlyLeafCheck boolean 定義是否隻在葉節點前顯示複選框。 false

lines boolean 定義是否顯示樹線條。 false

dnd boolean 定義是否啟用拖放。 false

data array 要加載的節點資料。 $('#tt').tree({

data: [{

text: 'Item1',

state: 'closed',

children: [{

text: 'Item11'

},{

text: 'Item12'

}]

},{

text: 'Item2'

}]

}); null

formatter function(node) 定義如何呈現節點文本。

代碼執行個體: $('#tt').tree({

formatter:function(node){

return node.text;

}

});

loader function(param,success,error) 定義如何從遠端伺服器加載資料。傳回 false 則取消該動作。該函數有下列參數:

param:要傳遞到遠端伺服器的參數對象。

success(data):當檢索資料成功時調用的回調函數。

error():當檢索資料失敗時調用的回調函數。 json loader

loadFilter function(data,parent) 傳回要顯示的過濾資料。傳回資料時以标準樹格式傳回的。該函數有下列參數:

data:要加載的原始資料。

parent:DOM 對象,表示父節點。

事件

很多事件的回調函數需要 'node' 參數,它包括下列屬性: id:綁定到節點的辨別值。

text:要顯示的文本。

iconCls:用來顯示圖示的 css class。

checked:節點是否被選中。

state:節點狀态,'open' 或 'closed'。

attributes:綁定到節點的自定義屬性。

target:目标的 DOM 對象。

名稱 參數 描述

onClick node 當使用者點選一個節點時觸發。代碼執行個體: $('#tt').tree({

onClick: function(node){

alert(node.text); // alert node text property when clicked

}

});

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 當節點折疊時觸發。

onBeforeCheck node, checked 當使用者點選複選框前觸發,傳回 false 則取消該選中動作。該事件自版本 1.3.1 起可用。

onCheck node, checked 當使用者點選複選框時觸發。

onBeforeSelect node 節點被選中前觸發,傳回 false 則取消選擇動作。

onSelect node 當節點被選中時觸發。

onContextMenu e, node 當右鍵點選節點時觸發。代碼執行個體: // right click node and then display the context menu

$('#tt').tree({

onContextMenu: function(e, node){

e.preventDefault();

// select the node

$('#tt').tree('select', node.target);

// display context menu

$('#mm').menu('show', {

left: e.pageX,

top: e.pageY

});

}

});

// the context menu is defined as below:

Append

Remove

onBeforeDrag node 當節點的拖拽開始時觸發,傳回 false 則禁止拖拽。該事件自版本 1.3.2 起可用。

onStartDrag node 當開始拖拽節點時觸發。該事件自版本 1.3.2 起可用。

onStopDrag node 當停止拖拽節點時觸發。該事件自版本 1.3.2 起可用。

onDragEnter target, source 當節點被拖拽進入某個允許放置的目标節點時觸發,傳回 false 則禁止放置。

target:被放置的目标節點元素。

source:被拖拽的源節點。

該事件自版本 1.3.2 起可用。

onDragOver target, source 當節點被拖拽到允許放置的目标節點上時觸發,傳回 false 則禁止放置。

target:被放置的目标節點元素。

source:被拖拽的源節點。

該事件自版本 1.3.2 起可用。

onDragLeave target, source 當節點被拖拽離開允許放置的目标節點時觸發。

target:被放置的目标節點元素。

source:被拖拽的源節點。

該事件自版本 1.3.2 起可用。

onBeforeDrop target,source,point 節點被放置之前觸發,傳回 false 則禁止放置。

target:DOM 對象,放置的目标節點。

source:源節點。

point:表示放置操作,可能的值是:'append'、'top' 或 'bottom'。

該事件自版本 1.3.2 起可用。

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 state 擷取選中的節點。狀态可用值有:'checked'、'unchecked'、'indeterminate'。如果狀态未配置設定,則傳回 'checked' 節點。

代碼執行個體: var nodes = $('#tt').tree('getChecked');// get checked nodes

var nodes = $('#tt').tree('getChecked', 'unchecked');// get unchecked nodes

var nodes = $('#tt').tree('getChecked', 'indeterminate');// get indeterminate nodes

var nodes = $('#tt').tree('getChecked', ['checked','indeterminate']);// get checked and indeterminate nodes

getSelected none 擷取選中的節點并傳回它,如果沒有選中節點,則傳回 null。

isLeaf target 把指定的節點定義成葉節點,target 參數表示節點的 DOM 對象。

find id 找到指定的節點并傳回該節點對象。代碼執行個體: // find a node and then select it

var node = $('#tt').tree('find', 12);

$('#tt').tree('select', node.target);

select target 選中一個節點,target 參數表示節點的 DOM 對象。

check target 把指定節點設定為勾選。

uncheck target 把指定節點設定為未勾選。

collapse target 折疊一個節點,target 參數表示節點的 DOM 對象。

expand target 展開一個節點,target 參數表示節點的 DOM 對象。當節點關閉且沒有子節點時,節點的 id 值(名為 'id' 參數)将被發送至伺服器以請求子節點資料。

collapseAll target 折疊所有的節點。

expandAll target 展開所有的節點。

expandTo target 從根部展開一個指定的節點。

scrollTo target 滾動到指定節點。該方法自版本 1.3.4 起可用。

append param 追加一些子節點到一個父節點,param 參數有兩個屬性:

parent:DOM 對象,要追加到的父節點,如果沒有配置設定,則追加為根節點。

data:數組,節點的資料。

代碼執行個體: // append some nodes to the selected node

var selected = $('#tt').tree('getSelected');

$('#tt').tree('append', {

parent: selected.target,

data: [{

id: 23,

text: 'node23'

},{

text: 'node24',

state: 'closed',

children: [{

text: 'node241'

},{

text: 'node242'

}]

}]

});

toggle target 切換節點的展開/折疊狀态,target 參數表示節點的 DOM 對象。

insert param 在指定節點的前邊或後邊插入一個節點,param 參數包括下列屬性:

before:DOM 對象,前邊插入的節點。

after:DOM 對象,後邊插入的節點。

data:對象,節點資料。

下面的代碼示範了如何在選中節點之前插入一個新的節點: var node = $('#tt').tree('getSelected');

if (node){

$('#tt').tree('insert', {

before: node.target,

data: {

id: 21,

text: 'node text'

}

});

}

remove target 移除一個節點和它的子節點,target 參數表示節點的 DOM 對象。

pop target 彈出一個節點和它的子節點,該方法和 remove 一樣,但是傳回了移除的節點資料。

update param 更新指定的節點,'param' 參數有下列屬性:

target(DOM 對象,要被更新的節點)、id、text、iconCls、checked,等等。

代碼執行個體: // update the selected node text

var node = $('#tt').tree('getSelected');

if (node){

$('#tt').tree('update', {

target: node.target,

text: 'new text'

});

}

enableDnd none 啟用拖放功能。

disableDnd none 禁用拖放功能。

beginEdit target 開始編輯節點。

endEdit target 結束編輯節點。

cancelEdit target 取消編輯節點。