-1

我有以下index.html文件:

<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script>
$( document ).ready(function() {
    $("#inline").click(function (event) { $(event.target).attr('style', "fill: yellow"); })
    $("#abc").click(function (event) { $(event.target).attr('style', "fill: yellow"); })
    $("#def").click(function (event) { $(event.target).attr('style', "fill: yellow"); })
    $("#circle2").click(function (event) { $(event.target).attr('style', "fill: yellow"); })
});
</script>
</head>
<body>

<svg id="inline" height="100" width="100" xmlns="http://www.w3.org/2000/svg">
  <circle cx="50" cy="50" r="25" stroke="black" stroke-width="3" fill="blue" />
</svg>

<svg id="abc" height="100" width="100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <image id="def" x="0" y="0" height="500" width="500" xlink:href="red.svg" />
</svg>

</body>
</html>

和文件red.svg

<svg id="circle2" xmlns="http://www.w3.org/2000/svg">
  <circle cx="50" cy="50" r="25" stroke="black" stroke-width="3" fill="red" />
</svg>

在浏览器中,我在 index.html 文件中看到 2 个圆圈。蓝色和红色。没关系。

单击它后,我想更改圆圈的颜色。在“内联”蓝色圆圈处有效。但是在插入的 svg(红色)中没有任何反应。

如何为导入的图像着色?

或者有没有其他工作方式如何导入 svg 文件?我不能使用jQuery.load()file://因为我需要从url导入文件。

4

1 回答 1

0

CSS 样式不能跨文档边界工作。您可以在#def 上设置样式属性,但它不会被red.svg 的内容继承。

您要么需要:

(a) 内联 red.svg,或

(b) 嵌入它,通过它让您可以通过 DOM (via my_object.contentDocument)访问它的内容

于 2014-12-20T05:30:39.903 回答