jQuery的$(文件)。就绪和SVG的Web window.onsvgload
jQuery的,当然所需要的所有在里面
$(document).ready = function() {};
同样,SVG的网络要求:
window.onsvgload = function() {};
是否有一个正确的,优雅的方式来结合这些不会引入任何问题?
您只需绑定功能,在适当的情况下运行,这样的:
$(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
如果它的事项,发生,不知道这会在其他浏览器都支持它虽然是一致的。
谢谢,但我仍然有点困惑。我在哪里放两种需要的东西? – colinmarc 2010-06-09 17:59:00
@colinmarc:在DOM准备就绪后,'svgload'将会触发,因为它是依赖的,如果它需要将它放在'.bind('svgload')'调用中... SVG元素必须被设置并加载那一点,所以DOM在那之前就已经准备好了。如果只需要DOM,请使用'document.ready'。 – 2010-06-09 18:03:53
这实际上给了我一些问题 - 我最终以我在下面发布的内容去做 - 但我会留下答案,因为你真的帮助我理解发生了什么 – colinmarc 2010-06-09 18:56:57
最后发现了这个在“用户手册”:
$(document).ready(function() {
window.addEventListener('SVGLoad', function() {
// ready to work with SVG now
}, false);
});
这不是跨浏览器兼容的。您应该使用jquery的绑定方法或创建一个函数来决定是否使用addEventListener,attachEvent或设置window.onsvgload。 – KeatsKelleher 2011-04-18 14:53:16
怎么样粘贴的'onsvgload' – 2010-06-09 17:28:15
我的整个脚本有当页面加载(第一)和SVG的网络中运行的内容已经加载(第二) - 内容是,好吧,一切 – colinmarc 2010-06-09 17:31:54