Javascript infovis toolkit(JIT)在超树中添加边缘事件侦听器
我正在努力向Javascript Infovis工具箱库中的HyperTree对象边缘添加边缘事件侦听器。我知道事实上,一切都围绕着“contains”方法,它不是为默认的边类型(即“hyperline”)实现的 我所做的: 我添加了代码Javascript infovis toolkit(JIT)在超树中添加边缘事件侦听器,javascript,graph,infovis,thejit,Javascript,Graph,Infovis,Thejit,我正在努力向Javascript Infovis工具箱库中的HyperTree对象边缘添加边缘事件侦听器。我知道事实上,一切都围绕着“contains”方法,它不是为默认的边类型(即“hyperline”)实现的 我所做的: 我添加了代码 Edge: { overridable: true, type: 'line', lineWidth: 4, color: '#bbb' } 到超树构造函数。
Edge: {
overridable: true,
type: 'line',
lineWidth: 4,
color: '#bbb'
}
到超树构造函数。
我给阿尔多加了一些类似的东西
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");
}
}
}
跟着。
我确实在Google Chrome调试器中检查过,jit源代码库中的行edgeHelper
对象上触发了contains
方法。当我单击某个边缘时,所有包含
调用仅对一个边缘返回true
,而对其余对象返回false
注释掉行enableForEdges
和type:'Native'
防止jitedgeHelper
行包含
方法上的aby触发器
但是,如果我在添加的onClick侦听器上放置一个断点,那么每当我在节点外部单击时(无论是在边缘还是在空白处单击),我都会得到node==false
所以一般的问题是:如何正确地将事件侦听器添加到超树中的边缘
更狭义的问题是:我如何确定,当某行返回true的包含时,它实际上会触发onClick侦听器,同时传递一个边,而不是false
jit.js中有一个bug。我已经提交了一份报告