Dadurch wird jedoch ein neues Attribut im Element mit dem Namen “Viewbox” erstellt. Beachten Sie die Kleinschreibung anstelle des beabsichtigten camelCase. Gibt es eine andere Funktion, die ich verwenden sollte?
Um also zu vermeiden, dass das Attribut in einem XHTML-Dokument in Kleinbuchstaben konvertiert wird, müssen Sie das Element erstellen, das einen Namensraum mit angibt document.createElementNS(), mögen:
var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
svg.setAttribute('viewBox', '0 0 512 512’);
Wenn Sie vorhaben, eine hinzuzufügen <use/> -Element müssen Sie auch den Namensraum angeben, während Sie das Element erstellen, sowie die xlink:href Attribut, wie:
var use = document.createElementNS('http://www.w3.org/2000/svg','use');
use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', '#your_svg_id');
Jetzt verwendet jQuery Ihre Setter/Getter, um diese Attribute zu manipulieren.
Notiz das el.attr('viewBox', null) wäre gescheitert Ihr Hakensetzer wird nicht aufgerufen. Stattdessen sollten Sie el.removeAttr(‘viewBox’) verwenden.
Obwohl diese Methode funktioniert, verhindert sie nicht, dass das alte Verhalten auftritt. Ein Element wird also mit beiden enden viewbox und viewBox Attribute. Nicht, dass es nicht funktionieren würde, aber es ist nicht so sauber, wie es sein könnte.
– Jasmin Hegman
7. März 15 um 0:14 Uhr
Fest. Der Setter sollte zurückkehren true
– Dinoboff
7. März 15 um 13:15 Uhr
Sie möchten sicherstellen, dass Sie das attr entfernen, falls es bereits vorhanden ist, bevor Sie es manipulieren
$("svg").removeAttr("viewBox")
und dann neu erstellen
$("svg").attr("viewBox","...");
.
4916900cookie-checkErzwingt attr() in jQuery Kleinbuchstaben?yes
bugs.jquery.com/ticket/11166
– j08691
11. September 12 um 2:48 Uhr
doppelte Frage stackoverflow.com/questions/10390346/…
– andres descalzo
11. September 12 um 2:55 Uhr
Danke andres. Hab versucht zu suchen aber das nicht gefunden.
– bzuillsmith
11. September 12 um 6:17 Uhr