jQuery Anhängen AJAX geladen SVG-problem
Bin ich erfolgreich laden per AJAX einige svg-aus externer Datei:
$("#svg").load(svgUrl + " svg", function() {
//do stuff
});
Mein HTML sieht so aus:
<div id="svg" ...>
<svg ...>
...
</svg>
</div>
Sehe ich die Grafiken nur gut. Jetzt möchte ich hinzufügen einige weitere svg-Elemente der geladenen svg. Ich änderte mein Skript:
$("#svg").load(svgUrl + " svg", function() {
$("svg").append("<g id='compass'></g>");
//do stuff
});
Für einige Gründe, warum das hinzugefügte element erscheint, als versteckte sich in firebug, und egal, was xml ist ich in des es ich kann es nicht sehen auf meiner Webseite.
Update:
Dank echo-flow ich war in der Lage, zum Anhängen an meine SVG. Jetzt wenn ich versuche zu laden, mein Kompass svg aus einer anderen xml-Datei-es erscheint nicht in meinem DOM. Im moment mein code sieht wie folgt aus:
$("#svg").load(obj.svgUrl + " svg", function() {
var svgns = "http://www.w3.org/2000/svg";
var g = document.createElementNS(svgns,"g");
g.setAttributeNS(null,'id','compass');
$("svg").append(g);
$("#compass").load("files/svg/compass.xml");
});
Wenn ich in der Konsole in firebug sehe ich, dass das Ergebnis der AJAX-Anfrage für Kompass-markup ist erfolgreich, aber leer ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
jQuery ist nicht wirklich gebaut, um bewusst sein, XML-namespaces, so dass die Zeichenfolge
"<g id='compass'></g>"
ist wahrscheinlich immer analysiert, so dass die erzeugten DOM-Knoten befinden sich im Standard-Namensraum, im Gegensatz zu den SVG-Namensraum. Sie können dies lösen, indem reguläre DOM zum erstellen der Knoten. Dies würde wie folgt Aussehen:Wenn Sie brauchen, um komplexere Strukturen, dann würde ich empfehlen, sich auf die jquery-svg Bibliothek, die eine sauberere API für die Erzeugung von SVG-DOM.
Aktualisiert
Ich das falsch verstanden, dass Sie versuchen zu laden, ist ein SVG-Dokument und fügen es Ihrem host-HTML-Dokuments - statt, ich dachte, Sie waren zu erzeugen versuchen SVG-Skript verwenden. Um Ihr problem zu lösen, würde ich empfehlen die folgenden (nicht getestet, aber sollte funktionieren):
Könnte es einfacher sein, wenn Sie beginnen mit jquery Leinwand. was ist eine modulare Sprache zur Beschreibung zwei-dimensionaler Vektor und mixed Vektor/raster-Grafiken in XML -
Ich habe es, wie folgt zu arbeiten.