我遇到了一个问题,尽管在我的节点对象中包含了“title”属性,但当我将鼠标悬停在节点上时,没有显示包含我的标题内容的弹出窗口。
以下是我的选项以及如何设置网络。
setUpNetwork(){
let container = document.getElementById('mynetwork');
//These options dictate the dynamic of the network
let options = {
nodes: {
shape: 'box'
},
interaction: {
dragNodes: false,
dragView: false,
hover: true
},
layout: {
randomSeed: undefined,
improvedLayout: true,
hierarchical: {
enabled: true,
levelSeparation: 180,
nodeSpacing: 180,
edgeMinimization: true,
parentCentralization: true,
direction: 'UD', // UD, DU, LR, RL
sortMethod: 'directed' // hubsize, directed
}
},
physics: {
enabled: false
}
}
// initialize your network!
this.network = new vis.Network(container, this.data, options);
}
当我将一个节点添加到网络的节点列表中时,我的结构如下:
addNode(node: any){
try {
this.data.nodes.add({
id: node.id,
color: node.color,
title: node.title,
label: node.label
});
this.network.fit();
}
catch (err) {}
}
我运行代码的环境使得很难提供一个关于这个问题的示例。网络中的其他东西都很好用(标签、id、颜色),只是当我把鼠标悬停在节点上时,标题就不一样了。
编辑:
我从vis.js中的this example复制了这段代码,弹出窗口在vis.js中工作。
// create an array with nodes
var nodes = new vis.DataSet([
{id: 1, label: 'Node 1', title: 'I have a popup!'},
{id: 2, label: 'Node 2', title: 'I have a popup!'},
{id: 3, label: 'Node 3', title: 'I have a popup!'},
{id: 4, label: 'Node 4', title: 'I have a popup!'},
{id: 5, label: 'Node 5', title: 'I have a popup!'}
]);
// create an array with edges
var edges = new vis.DataSet([
{from: 1, to: 3},
{from: 1, to: 2},
{from: 2, to: 4},
{from: 2, to: 5}
]);
// create a network
var container = document.getElementById('mynetwork');
var data = {
nodes: nodes,
edges: edges
};
var options = {interaction:{hover:true}};
this.network = new vis.Network(container, data, options);
我试着在我的环境中只使用它;但是,弹出窗口并不像示例中那样显示。我知道我的悬停事件是有效的,因为我包含了以下代码,当我将鼠标悬停在节点上时,这些代码将打印到控制台:
this.network.on("showPopup", function (params) {
console.log("DO SOMETHING");
})
是否有一些选项设置我在这里遗漏了?是否有一些其他的问题,为什么我的悬停弹出窗口不显示,尽管包括“标题”属性在我的节点对象?
5条答案
按热度按时间8wigbo561#
没有显示任何内容,因为您正在(“showPopup”)上使用事件。您必须在(“hoverNode”)上使用事件。因此,请使用
对于添加节点,最好使用
8zzbczxx2#
我也有同样的问题。在我的例子中,这是一个CSS问题。确保正确导入vis.min.css。我在链接语句中有一个错字。
ccrfmcuu3#
这是因为您可能没有导入vis-network CSS。您可以导入vis-network的独立版本,它将自动导入CSS。
cuxqih214#
您需要设置CSS
否则,工具提示在显示时会隐藏。
yeotifhr5#
对于任何寻找解决方案的人,将
vis-network.min.js
放在一个目录中,然后像这样调用。你从example下载了
vis-network.min.js
。找到了inspect元素,然后找到了sources标签。文件在standalone/umd
下