1

我正在尝试在旭日形图的边缘捕获点击事件。我已经捕获了节点上的点击事件。这就是我正在尝试的:

//..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");  
    }  
  }  

但这仅捕获节点点击。怎么了?先感谢您。

4

1 回答 1

4

问题是“包含”方法,对于边缘类型“超线”(森伯斯特使用)尚未在 infovis 库中实现。

库使用包含方法来了解参数中指定的某些位置是否在边缘内。如果没有 contains 方法,您将无法获取事件。因此,您可以在 jit.js 中实现自己的包含超线类型的方法,也可以简单地将边缘类型从 init 方法中的 'hyperline' 更改为 'line'。

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

您将能够捕获边缘类型“line”的事件,因为包含方法是为“line”类型定义的。

于 2013-05-15T08:23:07.310 回答