在 vis 中访问节点数据.js单击处理程序

Accessing node data in vis.js click handler

本文关键字:js 单击 处理 程序 数据 节点 vis 访问      更新时间:2023-09-26

我有一个节点和边的网络图,并希望在点击节点数据后获取节点数据。

var network = new vis.Network(container, data, options);
network.on( 'click', function(properties) {
    console.log('clicked node ' + properties.nodes);
});

但这只返回一些内部 id [105]。有没有办法获取与节点关联的实际数据?

您在属性中获取的节点 ID 不是"某个内部 ID",而是您自己定义的节点的 ID。您可以使用以下节点简单地从自己的DataSet读取节点的数据:

var nodes = new vis.DataSet([...]);
var edges = new vis.DataSet([...]);
var data = {nodes: nodes, edges: edges};
var network = new vis.Network(container, data, options);
network.on( 'click', function(properties) {
    var ids = properties.nodes;
    var clickedNodes = nodes.get(ids);
    console.log('clicked nodes:', clickedNodes);
});

如何获取单击的节点并从该节点检索节点信息:

network.on( 'click', function(properties) {
    var nodeId = network.getNodeAt({x:properties.event.srcEvent.offsetX, y:properties.event.srcEvent.offsetY});
    var node = nodes.get(nodeId);
});