[英]Load JSON file in Sigma.js but can't bind overEdge Event
我想从JSON文件中加载一些数据,并在Sigma.js中绘制它们的图形,然后将overEdge和outEdge事件与所有边缘绑定。 当我想在代码中绑定overNode事件时,我阅读了官方文档中的一些示例并解决了该问题,但是使用绑定overEdge事件的相同方法无效。 这是我的代码:
<script>
sigma.parsers.json(
'../data/data.json',
{
container: 'graph-container',
type: 'canvas',
settings: {
defaultNodeColor: '#ec5148',
enableEdgeHovering: true,
edgeHoverColor: 'edge',
defaultEdgeHoverColor: '#000',
edgeHoverSizeRatio: 1,
edgeHoverExtremities: true,
}
},
function(s) {
s.graph.nodes().forEach(function(n) {
s.bind('overNode',
function(e) {
alert("node");
}
);
});
s.graph.edges().forEach(function(n) {
s.bind('overEdge',
function(e) {
alert('edge');
}
);
});
}
);
</script>
当我运行代码时,似乎
enableEdgeHovering: true,
犯了一些错误
未捕获的错误:边缘事件功能与WebGL渲染器不兼容
但是当我删除它时,我的边缘无法绑定事件。 我看到官方示例也是如此,它们的代码可以在我的浏览器上工作,但我的代码不能。
可能它实际上并不适合您。 这是我的项目中的工作示例:
<div id="container">
<style>
#graph-container {
top: 0;
bottom: 0;
left: 0;
right: 0;
position: absolute;
}
</style>
<div id="graph-container"></div>
</div>
<script>
s = new sigma({
graph: 0,
container: 'graph-container',
renderer: {
container: document.getElementById('graph-container'),
type: 'canvas'
},
settings: {
doubleClickEnabled: false,
minEdgeSize: 0.5,
maxEdgeSize: 4,
enableEdgeHovering: true,
edgeHoverColor: '#000',
defaultEdgeHoverColor: 'red',
edgeHoverSizeRatio: 1,
edgeHoverExtremities: true,
defaultEdgeLabelSize: 20,
edgeLabelSize: 'proportional',
minArrowSize: 10,
}
});
sigma.parsers.json('data/arctic.json', s);
s.bind('overNode outNode clickNode doubleClickNode rightClickNode', function(e) {
console.log(e.type, e.data.node.label, e.data.captor);
});
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.