0

我正在使用 jQuery SVG 插件在客户端(网络浏览器)端使用 SVG。

在特定情况下,我必须在 SVG 中添加一个 FontAwesome 图标。SVG 上的 FontAwesome 图标正常工作,如果它们是原始 SVG 的一部分,它由 jQuery SVG 插件加载。

通过使用以下行添加动态图标会出现问题,其中mainSVG是全局 SVG 对象。

mainSVG.text(null, x, y, '&#'+iconCode);

其中 iconCode 类似于 "xf007" ...然后添加一些位置和样式属性。

将文本元素添加到 svg 工作正常。结果是一个字符串'&#xf007',它添加了一个文本对象,现在是 svg 的一部分。

<text x="49" y="139" style="font-family: FontAwesome; 
      font-weight: normal; font-size: 6px;" class="dot">

      &#xf007 

</text>

但是:它显示为字符串而不是图标。顺便说一句:FontAwesome 的 css 样式定义已加载并且已知洞察 SVG。

问题是:如果我使用 firebug 修改 SVG 以进行非常小的更改(例如在 SVG 元素之间添加空白),则图标变得可见。

对我来说,这是一个非常奇怪的行为,它看起来像,浏览器根本没有注意到新添加的图标。或者:浏览器仅在使用 firebug 对 svg 对象进行一些微小更改后才会注意到新添加的图标。

所以我的问题是:如何使用 jQuery 将动态 FontAwesome 图标添加到 svg,或者如何触发浏览器/svg“查看器”插件来注意图标,以便使用现有的 css 定义显示图标?

4

0 回答 0