Javascript infovis工具包(JIT)在HyperTree中添加边缘事件监听器

时间:2014-09-26 18:08:21

标签: javascript graph infovis thejit

我正在努力为Javascript Infovis工具包库中的HyperTree对象边缘添加边缘事件监听器。我知道这一事实,一切都围绕着“包含”方法,这种方法没有针对默认边缘类型实现,即“超线”。

我做了什么: 我添加了代码

Edge: {
           overridable: true,
           type: 'line',
           lineWidth: 4,
           color: '#bbb'
      }

到HyperTree构造函数。 我已添加类似

的内容
Events: {
            enable: true,
            enableForEdges: true,
            type: 'Native',
            onClick: function (node, eventInfo, e) 
                if (!node) return;
                alert(node);
                if (node.nodeFrom) {
                   alert("target is a node");
                } else {
                   alert("target is an edge");
                }
            }
         }

关注this question。 我确实在Google Chrome调试器中检查了jit源库中contains line个对象上的edgeHelper方法。当我点击某些边缘时,所有contains次调用仅返回true一条边,而其余对象返回false

注释掉enableForEdges行和type: 'Native'行会阻止jit edgeHelpercontains方法的aby触发器。

但是如果我在onClick监听器上添加断点,每当我点击节点外(无论是否点击边缘或空白空间)时,我都会得到node == false

所以问题一般:如何在HyperTree中正确地将事件监听器添加到边缘?

更狭隘的问题:我怎么能确定,当某个行的contains返回true时,它实际上触发了一个onClick侦听器,同时在那里传递一个边,而不是false。 / p>

1 个答案:

答案 0 :(得分:0)

jit.js中存在错误。我已提交pull-request