如何用SVG图像监听对象的加载事件?

时间:2014-07-10 08:21:12

标签: javascript jquery svg snap.svg

我希望在加载snap.svg之后操纵SVG图像。不幸的是,从不调用load事件的回调。如何将加载事件注册到svg对象?

我已经创建了minimal example我的问题。

HTML:

<object data="http://upload.wikimedia.org/wikipedia/en/8/80/Wikipedia-logo-v2.svg" type="image/svg+xml" id="animation" />

使用Javascript:

alert('loading');
$('#animation').on('load', function() {
  alert('loaded');
});

1 个答案:

答案 0 :(得分:9)

来自这篇文章jQuery SVG-object tag load event

  

似乎jQuery只是阻止将“load”事件绑定到   非图像或文档元素,所以我只使用“官方”   addEventListener()函数......

还不确定是否仍然如此,但你的问题主要是在jsfiddle,你正在执行文档“已加载”而不是文档“就绪”的代码。加载文档意味着在执行代码之前加载了所有资源,因此已经加载了svg图像。

使用此更新的jsfiddle http://jsfiddle.net/47jSh/2/

可以正常使用
alert('loading');
$('#animation')[0].addEventListener('load', function() {
    alert("loaded");    
}, true);