Hil*_*way 5 html svg jquery-svg
我有这样的代码,使用jQuery-svg
function replaceRaster(){
$('#png').remove()
a = $('#graphic')
b = a.svg(a)
a.load('IDC_Energy.svg',
{onLoad:bind} )
svg = document.getElementById("graphic").children[0]
console.log(svg)
svg.addEventListener('load', bind)
}
Run Code Online (Sandbox Code Playgroud)
bind在jQuery-svg-dom能够选择SVG数据中的元素之前,会触发事件处理程序.我的代码应该查看SVG并分配各种类并将侦听器附加到各种元素,但它无法找到任何元素.如果我bind在加载完所有内容后调用控制台,它可以找到所有SVG元素.
难道我做错了什么?有没有其他方法可以检测SVG DOM何时可用?我曾经想过使用一个计时器,但这真的很糟糕,特别是考虑到我的SVG文件可能只有几MB.
您是否尝试过使用定时器延迟为“0”或只是“10”的定时器?我经常使用这种技术将工作从当前运行循环中推出,因为在重绘 gha 完成后会触发计时器。幸运的是,只有在重绘完成后才会触发绑定。我不确定这是否对您的特定实例有帮助,因为我不知道您在页面中还做了什么 - 例如,如果您正在进行一些异步数据处理,那么它不会有帮助。