如何访问 raphael 创建的纸对象?

How can I access the paper object created by raphael?

我正在研究 HTML 显示器以进行一些系统发育分析。我创建了一个 div,并且有一个名为 jsPhyloSVG 的可爱 javascript 包,它在 div 中为我画了一棵漂亮的树。该包使用 raphael 进行绘图,但它没有 return raphael paper 对象。我想使用 raphael 对此图像添加一些内容,但我不知道该怎么做,因为我没有对该 paper 对象的引用。我可以访问 raphael 生成的 svg,但是有什么方法可以反向查找 paper?

如果这不起作用,我总是可以使用 jquery 将圆形或路径对象直接添加到 svg,对吗?

好吧,在用了大半天的时间把我的头撞到墙上之后,我的问题已经解决了。事实证明,如果可以找到对对象本身的引用,则可以重用由其他库创建的 paper 对象。对于任何其他使用 jsPhyloSVG 的人,可以通过以下方式找到:

var dataObject = {phyloxml: tree_data};
var phylocanvas = new Smits.PhyloCanvas(
  dataObject,
  'svgCanvas',
  1000, 1000,
  'circular'
);
var paper = phylocanvas.getSvg().svg;

然后您可以照常进行:paper.circle(100, 100, 15);

我认为 Ian 的意思是,您不能重复使用由 raphael 创建的 svg。我总是可以访问该元素,但是使用 jQuery 附加圆形元素不起作用。

它们会出现在检查面板的 svg 对象中,但不会显示在屏幕上。在另一个问题 here 中讨论了一些变通方法,这些变通方法大部分对我有用。但是他们断开了 raphael 对象和屏幕上的 svg 元素之间的连接;大多数鼠标悬停功能停止工作。