Infovis JIT:添加点击监听器到边缘

时间:2013-05-14 15:29:20

标签: javascript graph infovis thejit sunburst-diagram

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

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

但这只能捕获节点点击次数。怎么了? 提前谢谢。

1 个答案:

答案 0 :(得分:4)

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

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

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

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