【发布时间】:2016-08-04 13:23:24
【问题描述】:
我正在使用 vis.js 来显示网络节点。我正在解析来自 JSON 的节点数据并将其存储在一个数组中:
$.each(jsonObj, function(i, val) {
var itemId = val.id;
var itemGroup = val.group;
var itemLabel = val.label;
var itemLevel = val.level;
var itemData = val.nodeData;
var itemX = val.x;
var itemY = val.y;
var nodeData = JSON.parse(val.nodeData);
nodes[nodeCnt] = { id: itemId, group: itemGroup, label: itemLabel, level: itemLevel, title: itemData, x: itemX, y: itemY, font: { color: colour }, color: { border: colour }};
nodeCnt++;
}
这项工作完美无缺,我可以显示我的网络:
var data = {
nodes: nodes,
edges: edges
};
var options = { ... }
network = new vis.Network( container, data, options );
我使用事件处理程序在单击节点时采取行动,我解析被单击节点的 ID(这是简写版本):
network.on("click", function (params) {
// parse node id
var nodeID = params['nodes']['0'];
}
我想更新节点的颜色,我尝试了各种变化,包括以下无济于事?
var options = {
nodes:{
id: nodeID,
borderWidth: 20,
color: {
border: '#000000',
background: '#000000',
border: '#000000',
highlight: {
border: '#2B7CE9',
background: '#D2E5FF'
}
}
}
}
network.setOptions(options);
我一直在尝试不同的方法来做到这一点。如果我从上述选项中删除 "id: nodeID," 参数,我希望所有节点都会更新,但没有一个。
我正在为我的节点使用标准 ID:595191aa-98c6-4a4b-a0e0-4262df83e0de
有什么想法吗?
提前谢谢你。
【问题讨论】:
标签: javascript jquery vis.js