tengo código como este, usando jQuery-SVGEvento de carga SVG llamado demasiado temprano?
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)
}
El controlador de eventos, bind
, se dispara antes de jQuery-SVG-DOM es capaz de seleccionar los elementos dentro de los datos SVG. Mi código se supone que mirar por encima de la SVG y asignar diferentes clases y adjuntar a los oyentes a diversos elementos, pero no es capaz de encontrar ninguna. Si llamo bind
en la consola después de que todo está cargado puede encontrar felizmente los elementos SVG.
¿Estoy haciendo algo mal? ¿Hay alguna otra forma de detectar cuándo está disponible SVG DOM? He pensado en usar un temporizador, pero eso es realmente hacky, especialmente teniendo en cuenta que mis archivos SVG podrían tener unos MB de tamaño.
La página se está cargando los datos de forma asíncrona SVG, sí. Terminé usando un ciclo para verificar si el contenido está listo cada 50 ms o algo así (ahora lo olvidé). –