Bootstrap 树视图中的节点只能使用 + & - 前缀折叠/展开。我知道点击事件是为了不那么平凡的事情而保存的。我们确实使用点击事件将有关叶子的信息发送到页面的另一部分。
但我的客户正是想要这个:点击 li 元素时折叠和展开。事实上,这更加用户友好和直观。
我在GitHub 上找到了“expandNode”和“collapseNode”方法。
$('#tree').treeview('expandNode', [nodeId, {
levels: 2,
silent: true
}]);
$('#tree').treeview('collapseNode', [nodeId, {
silent: true,
ignoreChildren: false
}]);
现在我想直接从事件 onNodeSelected 中调用它们,如下所示:
$('#treeview').treeview({
data: data,
multiSelect: true,
highlightSelected: false,
onNodeSelected: function(event, node) {
if (node.nodes == undefined) {
// sends node info to another element
} else if (node.state.expanded) {
// TODO collapse children
collapseNode(node.nodeId);
} else {
// TODO expand children
expandNode(node.nodeId);
}
}
});
function collapseNode(nodeId) {
$('#tree').treeview('collapseNode', [nodeId]);
alert("collapse " + nodeId);
}
function expandNode(nodeId) {
$('#tree').treeview('expandNode', [nodeId]);
alert("expand " + nodeId);
}
警报被触发并显示正确的节点 ID。但是节点没有展开(或折叠)。我想念什么?