我有一个svg文件,我正在通过XHR加载
<svg>
<circle cx="50" cy="50" r="50"/>
</svg>
我通过
成功地将圆圈绘制到绘图上draw.svg(circle);
其中circle
是包含svg标记的字符串。圆圈出现在图形上,但是.svg方法不是获取与initializer
等其他元素一起返回的rect
对象,而是返回一个create
对象,其节点只是绘图元素,而不是圆形本身。这并不理想,因为我还需要通过鼠标交互来拖动,缩放和旋转圆圈。
为什么这是draw.svg
的行为?
答案 0 :(得分:1)
当您使用svg导入内容时,svg内容(不管是什么)将被添加到您调用svg()
的节点上。想象一下,您不会导入单个元素,而是一次导入多个元素。导入函数应该返回什么?一套?
使svg()
始终返回节点本身更简洁。
当您只使用svg()
添加一个元素时,您仍然可以使用svg(svgstring).last()
来为您提供感兴趣的元素。
在未发行的3.0中,可以这样做:
SVG(svgstring).addTo(draw)
它直接返回导入的元素,因为您使用SVG
构造函数创建了一个新实例。但是,这不适用于文档片段(至少不是atm。我们可能会实现它)