【问题标题】:Infovis JIT: add click listener to edgeInfovis JIT:将点击侦听器添加到边缘
【发布时间】:2013-05-08 23:19:59
【问题描述】:

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

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

但这仅捕获节点点击。怎么了? 提前谢谢你。

【问题讨论】:

    标签: javascript graph infovis thejit sunburst-diagram


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 有效!非常感谢。我会尝试编写 contains 方法,虽然它看起来很困难。
    • 不客气。如果您在编写后分享包含方法,我将不胜感激。
    猜你喜欢
    • 2014-11-21
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    • 2011-09-28
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 2020-08-02
    相关资源
    最近更新 更多