【问题标题】:How to implement expandNode within onNodeSelected from a Bootstrap treeview?如何在 Bootstrap 树视图的 onNodeSelected 中实现 expandNode?
【发布时间】:2017-01-17 17:32:35
【问题描述】:

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

【问题讨论】:

    标签: javascript jquery treeview bootstrap-treeview


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-10
      • 1970-01-01
      • 2010-12-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多