通过 jQuery.svg 进行 SVG

发布于 2024-11-07 07:10:54 字数 1024 浏览 0 评论 0原文

在 jQuery svg 插件 (http://plugins.jquery.com/project/svg) 中使用svg 是从 div 元素开始执行的,并在 div 内部创建新的 svg 对象:

使用以下内容将 SVG 画布附加到 a:

$(selector).svg();

是否可以使用 jquery 连接到现有的 svg-object?如果“是”怎么办?

编辑: 建议提示:

<body onload="alert('loaded');testSvg();">
    <div id="div3" style="border: solid 1px black; width:200px; height:100px">
        <svg id="svg3" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"></svg>
    </div>

    <script type="text/javascript">
    function testSvg() {
        var svgRootElement = $("#svg3").get();
        var svgWrapper = new $.svg._wrapperClass(svgRootElement);
        svgWrapper.circle(30, 25, 50, { fill: 'red' });
    }

导致错误:

“TypeError:无法获取属性“createElementNS”的值:对象为 null 或未定义”错误...

为什么?

In jQuery svg plugin (http://plugins.jquery.com/project/svg) work with svg is performed starting from div element and creating new svg object inside of div:

Attach an SVG canvas to a with the following:

$(selector).svg();

Is it possible to connect with jquery to existing svg-object? If "yes" how to do that?

EDIT:
Suggested tip:

<body onload="alert('loaded');testSvg();">
    <div id="div3" style="border: solid 1px black; width:200px; height:100px">
        <svg id="svg3" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"></svg>
    </div>

    <script type="text/javascript">
    function testSvg() {
        var svgRootElement = $("#svg3").get();
        var svgWrapper = new $.svg._wrapperClass(svgRootElement);
        svgWrapper.circle(30, 25, 50, { fill: 'red' });
    }

causes an error:

'TypeError: Unable to get value of the property 'createElementNS': object is null or undefined' error...

why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

酒浓于脸红 2024-11-14 07:10:54

是的,这是可能的。 此处对此进行了描述,尽管它有点难找到。如果您使用内联 SVG(例如,您没有使用对象标签或 iframe 将 SVG 嵌入到 HTML 中),则以下内容应该有效:

$(document).ready(function(){
var svgRootElement = $("#myExistingSVGObject");
var svgWrapper = new $.svg._wrapperClass(svgRootElement); // this is the equivalent of what is returned from the call to .svg()
})

Yes, it is possible. It's described here, although it's a bit difficult to find. If you're using inline SVG (e.g. you're not embedding SVG into HTML using an object tag, or an iframe), then the following should work:

$(document).ready(function(){
var svgRootElement = $("#myExistingSVGObject");
var svgWrapper = new $.svg._wrapperClass(svgRootElement); // this is the equivalent of what is returned from the call to .svg()
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文