JQuery(据我所知)完全基于 DOM,而 Raphael 正好相反,我怎样才能在同一个文档中使用两全其美?有没有有效的方法来实现这一目标?
进一步说明:我知道 Raphael 会在代码中创建实际的 DOM 元素,但它们的 ID 要求我进入我创建的每个元素,然后尝试将其合并到 JQuery 中。有什么简单的方法可以在 DOM 元素上而不是在脚本元素上使用 Raphael?
谢谢 !
不幸的是,Raphael 不能使用它没有创建的 DOM 元素。但是,您可以做的是使用raphael-svg-import库导入 svg,因此与 jQuery 结合使用将如下所示:
var mySvg = $('svg#IdOfMySVGElement')
var paper = Raphael(10, 10, 800, 500);
var set = paper.set();
paper.importSVG(mySvg.html(), set);
//the whole svg will be recreated so we need to remove the original
mySvg.remove();
请记住,它仅适用于启用 svg 的浏览器。对于 VML,您将需要寻找其他解决方案或编写您自己的 vml 解析器。