繁体   English   中英

在Sigma.js中加载JSON文件,但无法绑定overEdge事件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM