jQuery的$(文件)。就绪和SVG的Web window.onsvgload

问题描述:

jQuery的,当然所需要的所有在里面

$(document).ready = function() {}; 

同样,SVG的网络要求:

window.onsvgload = function() {}; 

是否有一个正确的,优雅的方式来结合这些不会引入任何问题?

+0

怎么样粘贴的'onsvgload' – 2010-06-09 17:28:15

+0

我的整个脚本有当页面加载(第一)和SVG的网络中运行的内容已经加载(第二) - 内容是,好吧,一切 – colinmarc 2010-06-09 17:31:54

您只需绑定功能,在适当的情况下运行,这样的:

$(function() { //shortcut for $(document).ready(function() { 
    //stuff that needs the DOM to be ready 
}); 
$(window).bind('svgload', function() { 
    //SVG stuff 
}); 

有没有害处同时使用,其实这就是适当使用,一直使用您需要的情况下,这与document.ready vs window.load没有什么不同,当你需要准备好图像时,不仅仅是DOM。在支持它的这个答案的时候浏览器onload

如果它的事项,发生,不知道这会在其他浏览器都支持它虽然是一致的。

+0

谢谢,但我仍然有点困惑。我在哪里放两种需要的东西? – colinmarc 2010-06-09 17:59:00

+0

@colinmarc:在DOM准备就绪后,'svgload'将会触发,因为它是依赖的,如果它需要将它放在'.bind('svgload')'调用中... SVG元素必须被设置并加载那一点,所以DOM在那之前就已经准备好了。如果只需要DOM,请使用'document.ready'。 – 2010-06-09 18:03:53

+0

这实际上给了我一些问题 - 我最终以我在下面发布的内容去做 - 但我会留下答案,因为你真的帮助我理解发生了什么 – colinmarc 2010-06-09 18:56:57

最后发现了这个在“用户手册”:

$(document).ready(function() { 
    window.addEventListener('SVGLoad', function() { 
     // ready to work with SVG now 
    }, false); 
}); 
+1

这不是跨浏览器兼容的。您应该使用jquery的绑定方法或创建一个函数来决定是否使用addEventListener,attachEvent或设置window.onsvgload。 – KeatsKelleher 2011-04-18 14:53:16