是否有事件监听器检测点/ SVG图上的鼠标点击?

时间:2012-09-04 05:26:25

标签: svg graphviz dot

我正在玩生成点文件,然后将它们变成带有大量节点的SVG图。

我的问题是,是否有事件监听器检测点/ SVG图节点上的鼠标点击?

例如,右键单击SVG图中的节点,我做了一些事情(可能从节点获取相关信息然后做某事),

那么如何生成点文件或SVG文件来实现呢?

3 个答案:

答案 0 :(得分:0)

有几种方法可以创建交互式SVG图:

在任何情况下,您都必须在支持这些技术(浏览器)的客户端中显示svg图,除了svg输出graphviz创建之外,您还必须对其进行编码。

答案 1 :(得分:0)

如果你想要交互式图表,那么graphviz可能不是最好的选择。

我建议您查看D3.js。也许你可以用json构建图形数据并用D3加载它们?

答案 2 :(得分:0)

对此有另一个想法(意识到这个问题很旧,但是也许可以帮助遇到的人)。

根据您要执行的操作,将事件处理与图形解耦可能是最简单的。我的意思是,您可以找到graphviz将节点(以及边缘,标签等)放置在何处,例如,参见this post on how to do it in python。然后,您可以在所使用的任何GUI的背景中绘制图形,并通过将不可见的可单击对象放置在节点上,使用其本机事件处理对on_click做出反应。