在负载内捕捉svg负载

时间:2014-08-11 23:02:54

标签: javascript jquery svg snap.svg

我试图将一个svg加载到另一个svg中,并使用jquery将第二个svg元素追加到第一个。

$( document ).ready(function() {
    var s = Snap("#svgmain");
    var g = s.group();
    Snap.load("SVGFILES/3k1e-test.svg",function(lf)
    {
        g.append(lf);//Added #svg3049 to #svgmain>g
        Snap.load("SVGFILES/info_msg.svg",function(lf_info_msg){
            g.append(lf_info_msg);//Added #svg2>path to #svgmain>g
            $("#svgmain > g > svg#svg3049 > g").append($("#svgmain > g > svg#svg2 > g"));//OK
            });
    //trying to append path from second svg element to first
    $("#svgmain > g > svg#svg3049").append($("#svgmain > g > svg#svg2 > g"));//NOT OK
    });
)};

为什么我无法在第一个函数中追加路径? 抱歉英文不好。

1 个答案:

答案 0 :(得分:0)

Snap.load是异步的,因此您无法确定完成所需的时间,这就是回调函数的原因。

如果你只是在第一个函数中运行追加,那么第二个加载可能在它运行时没有完成。所以它需要在第二个函数的回调中。这样你就知道两个文件都已完成加载。