如何在Bootstrap树视图中的onNodeSelected中实现expandNode?

时间:2017-01-17 17:32:35

标签: javascript jquery treeview bootstrap-treeview

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。但节点未展开(或折叠)。 我错过了什么?

1 个答案:

答案 0 :(得分:1)

您在功能中选择了错误的树状视图。尝试将它们更新为以下内容:

function collapseNode(nodeId) {
  $('#treeview').treeview('collapseNode', [nodeId]);
  alert("collapse " + nodeId);
}

function expandNode(nodeId) {
  $('#treeview').treeview('expandNode', [nodeId]);
  alert("expand " + nodeId);
}