Infovis JIT:向边缘添加点击侦听器

Infovis JIT: add click listener to edge

本文关键字:侦听器 添加 边缘 JIT Infovis      更新时间:2023-09-26

我正试图捕捉一个点击事件在一个日暴图的边缘。我已经捕获了节点上的单击事件。这就是我正在尝试的:

//..sunburst example code
Events: {  
  enable: true,  
  enableForEdges: true,  
  type: 'Native',  
  onClick: function(node, eventInfo, e){  
    if (!node) return;  
    if(node.nodeFrom){  
      console.log("target is an edge");  
    }else{  
      console.log("target is a node");  
    }  
  }  

但是这只捕获节点点击。怎么了?

问题是'contains'方法,对于边缘类型'hyperline'(sunburst使用)尚未在infovis库中实现。

库使用

Contains方法来判断参数中指定的某个位置是否在边缘内。如果没有contains方法,就无法获取事件。所以,你可以在jit.js中为hyperline类型实现你自己的contains方法,或者你可以简单地在init方法中将'hyperline'的边缘类型更改为'line'。

Edge: {
  overridable: true,
  type: 'line',  //'hyperline'
  lineWidth: 2,
  color: '#777'
} 

您将能够捕获边缘类型为'line'的事件,因为contains方法是为'line'类型定义的。