Я столкнулся с чрезвычайно удивительным поведением некоторых старых jQuery, которые не позволяют изменять атрибуты svg
element width
или height
(не стили).Он просто не изменяет их и всегда молча терпит неудачу.
Он отлично работает с такими атрибутами, как mywidth
, но не с width
.
Обратите внимание, что это связано с какой-то очень старой версией jQuery.(v1.4.3), но все же мне просто любопытно обосновать это.
Настройка проста:
<svg id='mysvg'></svg>
и код JS:
$('#mysvg').attr('width','100');
ничего не делает, где:
$('#mysvg').attr('mywidth','100');
работает нормально.
Я предполагал, что некоторые другие сценарии отменяют изменения и пытались повлиять на атрибут после тайм-аута или по щелчку, ноповедение остается прежним .
Также я пытался поставить точку останова на изменение атрибута в Chrome, но он также не работает , он срабатывает для .attr('mywidht','100')
, но делаетне для .attr('width','100)
.Он никогда не генерирует консольную ошибку, всегда завершается сбоем молча.
Существует ли какая-либо историческая причина или небезызвестная ошибка, которая препятствует изменению атрибута ширины и высоты тега svg
HTML?
Обратите внимание, что в некоторых пользовательскихтег, такой как <mysvg>
, он также отлично работает и добавляет атрибут width.
JSFiddle, воспроизводящий его: https://jsfiddle.net/d8703afx/
Похоже, attr('width')
возвращает некоторые "особые" [object SVGAnimatedLength]