Bootstrap树视图中的节点只能使用+& amp;进行折叠/展开。 - 前缀。我知道点击事件是为了少量的事情而保存的。我们确实使用click事件将有关叶子的信息发送到页面的另一部分。
但是我的客户想要的确如此:崩溃&单击li元素时展开。事实上,这更加用户友好和直观。
我找到了方法" expandNode"和" collapseNode"在GitHub。
$('#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。但节点未展开(或折叠)。 我错过了什么?
答案 0 :(得分:1)
您在功能中选择了错误的树状视图。尝试将它们更新为以下内容:
function collapseNode(nodeId) {
$('#treeview').treeview('collapseNode', [nodeId]);
alert("collapse " + nodeId);
}
function expandNode(nodeId) {
$('#treeview').treeview('expandNode', [nodeId]);
alert("expand " + nodeId);
}