Ho codice in questo modo, utilizzando jQuery-svgEvento onload SVG chiamato troppo presto?
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)
}
Il gestore di eventi, bind
, viene generato prima jQuery-svg-dom è in grado di selezionare gli elementi all'interno dei dati SVG. Il mio codice dovrebbe guardare sopra l'SVG e assegnare varie classi e collegare gli ascoltatori a vari elementi, ma non è in grado di trovarne. Se chiamo bind
nella console dopo che tutto è stato caricato, può trovare tutti gli elementi SVG.
Sto facendo qualcosa di sbagliato? C'è un altro modo per rilevare quando il DOM SVG è disponibile? Ho pensato di usare un timer, ma questo è veramente hacky, specialmente considerando che i miei file SVG potrebbero avere dimensioni di qualche MB.
La pagina sta caricando i dati SVG in modo asincrono, sì. Ho finito per utilizzare un ciclo per verificare se il contenuto è pronto ogni 50 ms o qualcosa (dimenticato ora). –