禁用点击时自动选择节点?

时间:2018-10-04 00:43:47

标签: vis.js-network

我正在使用VIS.JS网络图作为菜单(某种形式),它与屏幕的另一个区域具有主/明细关系。每次用户选择一个节点,我都会用信号通知其他区域的负载。由于加载是异步的,可能需要一些时间(1-2秒),因此我想防止在加载详细信息之前更改网络节点的选择。

理想情况下,我希望单击以调用回调,而不更改节点选择。然后从详细信息窗格中接收到有关加载已完成的通知,然后才通过代码更改节点选择。

我认为我唯一缺少的是单击节点时禁用节点自动选择的功能。

有可能吗?

谢谢

-约翰

2 个答案:

答案 0 :(得分:0)

捕获事件并防止默认行为不应使元素集中。

handleClick (evt) {
  evt.preventDefault();
  // rest of code
}

答案 1 :(得分:0)

我不知道它是否完全适合您的需求,但是, 我需要创建一些不可选择的节点,所以我在不可选择节点的ID前面加上了标记。

然后

  const unselectableMarker = 'header-';

  network.on('selectNode', (opts) => {
    network.setSelection({
      nodes: opts.nodes.filter(id => !id.startsWith(unselectableMarker)), // prevent selection of headers nodes
      edges: opts.edges,
    });
  });

在防止网络环境中事件发生的实际文档中,我什么也没发现。

相关问题