我正在使用VIS.JS网络图作为菜单(某种形式),它与屏幕的另一个区域具有主/明细关系。每次用户选择一个节点,我都会用信号通知其他区域的负载。由于加载是异步的,可能需要一些时间(1-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,
});
});
在防止网络环境中事件发生的实际文档中,我什么也没发现。