自 0.20.0 以来
用于显示树状结构数据的列表。它在 0.20.0 中增加,功能相当简单。
类型: 数组
树列表的初始数据。
树以项的数组表示。这些是树结构中的顶层项。每个项可能有一个 children
属性,用于标识该项的子项。
[
{
label: '本地',
icon: 'fa fa-rocket',
children: [
{ label: "子项 1"},
{ label: "子项 2"}
]
}
]
每个项可以具有以下属性:
属性 | 描述 |
---|---|
label |
项的标签。 |
id |
(可选)项的唯一标识符 |
class |
(可选)应用于项的 css 类 |
icon |
(可选)作为图标应用的 css 类,例如 "fa fa-rocket" 。 |
checkbox |
(可选)如果设置,在项旁边显示复选框。 |
radio |
(可选)自 2.1 起 如果设置且未设置 checkbox ,在项旁边显示单选框。值应为用于分组单选按钮的字符串。 |
selected |
(可选)设置项的初始选中状态。 |
children |
(可选)标识该项的子项。如果子项已知,可以提供为数组,或作为异步获取子项的函数。详情见下文。 |
expanded |
(可选)如果该项有子项,设置是否显示子项 |
deferBuild |
(可选)延迟构建该项的子项的任何 UI 元素,直到第一次展开。这对大数据集可以带来显著的性能提升。 |
element |
(可选)用于替代节点标签的自定义 DOM 元素。如果设置了 label ,则会被忽略。 |
如果 children
属性提供为函数,该函数应接受一个回调函数的单个参数。该回调函数应使用子项数组调用。这允许异步地检索项,例如通过 HTTP 请求。
children: function(done) {
$.getJSON('/some/url', function(result) {
done(result);
})
}
在项被添加到 treeList 后,它会增加一些额外的属性和函数:
属性 | 描述 |
---|---|
item.parent |
树中的父项 |
item.depth |
树中的深度,0 为树的根 |
item.treeList.container |
包含该项的 DOM 元素 |
item.treeList.label |
包含标签的 DOM 元素 |
函数 | 描述 |
---|---|
item.treeList.remove(detach) |
从树中移除该项。将 detach 设置为 true 以保留项上的任何事件处理程序 - 如果该项将要在其他地方重新添加,则需要。 |
item.treeList.makeLeaf(detachChildElements) |
将具有子项的元素变为叶节点,移除 UI 装饰。将 detachChildElements 设置为 true 以保留任何子元素事件处理程序。 |
item.treeList.makeParent(children) |
将该项设置为父项,添加子项 |
item.treeList.insertChildAt(item, pos, select) |
在所需位置添加新项,可选地在添加后选择该项 |
item.treeList.addChild(item, select) |
追加子项,可选地在添加后选择该项 |
item.treeList.expand(done) |
展开该项以显示子项,可选的 done 回调在完成时调用 |
item.treeList.collapse() |
折叠该项以隐藏其子项 |
item.treeList.sortChildren(sortFunction) |
使用提供的排序函数对项的子项进行排序。排序函数应与 Array.sort() 使用的 compareFunction 匹配 |
item.treeList.replaceElement(element) |
替换项的自定义 DOM 元素 |
返回树列表正在显示的数据。
如果有任何项的 selected
属性被设置,其值将反映当前的复选框状态。
设置将由列表显示的数据。
有关 items
参数的详细信息,请查看 data
选项。
$(".input").treeList('data',[{label:"颜色"}]);
从列表中移除所有项。
$(".input").treeList('empty');
确保列表中可见一项。参数 itemId
必须与列表中项的 id
属性相对应。
注意: 这目前仅适用于列表中的顶层项。不能用来显示树的下层项。
$(".input").treeList('show','my-red-item');
当单击项时触发。如果该项原本设置了 selected
属性,其值将更新以反映该项的复选框状态。
$(".input").on('treelistselect', function(event, item) {
if (item.selected) {
// 复选框被选中
} else {
// 复选框未被选中
}
} );
当鼠标移出项时触发。
$(".input").on('treelistmouseout', function(event, item) { });
当鼠标移到项上时触发。
$(".input").on('treelistmouseover', function(event, item) { });
版权所有 OpenJS Foundation 和 Node-RED 贡献者。保留所有权利。OpenJS Foundation 拥有并使用注册商标。有关 OpenJS Foundation 的商标列表,请参阅我们的 商标政策 和 商标列表。未在 OpenJS Foundation 商标列表 中列出的商标和徽标是其各自持有者的商标™或注册商标®。使用它们并不意味着与它们有任何关联或认可。
OpenJS Foundation | 使用条款 | 隐私政策 | OpenJS Foundation 章程 | 商标政策 | 商标列表 | Cookie 政策