jQuery attr () не может установить атрибут - PullRequest
14 голосов
/ 02 июля 2011

Я пытаюсь повернуть изображение с помощью svg's transform. Вот код, который у меня есть:

<svg width="100" height="100"> 
   <image id="trns" transform="rotate(90,50,50)" width="100" height="100" xlink:href="logo.png"/> 
</svg>

Это успешно поворачивает logo.png на 90 градусов при загрузке страницы. Кроме того, когда я изменяю 90 на другое число на вкладке HTML firbug, вращение изменяется соответственно. Но когда я пытаюсь изменить значение с помощью jQuery, ничего не происходит:

$('#trns').attr('transform', 'rotate(60, 50,50)');

Что делает firebug, чего не делает моя attr строка?

Ответы [ 4 ]

7 голосов
/ 02 июля 2011

Хорошо работает здесь (с jQuery 1.6.2): http://jsfiddle.net/niklasvh/k3Grd/

Обязательно позвоните, как только DOM будет готов:

$(function(){
 $('#trns').attr('transform', 'rotate(60,50,50)');
});
4 голосов
/ 02 июля 2011

Очень странно, похоже, это работает

$('#trns')[0].setAttribute('transform','rotate(20,50,50)')

Кроме того, если вы посмотрите на $ ('# trns'). Attr ('transform'), вы получите объект ... Недостаточно времени, чтобы разобраться в этом.

3 голосов
/ 02 июля 2011

Если вы используете jquery> = 1.6, попробуйте использовать prop вместо attr.
Надеюсь, это поможет.Приветствия

0 голосов
/ 10 октября 2016

.attr () работает в 3.1.1 следующим образом

.attr({ style: "prop : val; prop : val; prop : val" })

это может быть решением проблем с версией.

...