svg rotate не работает с jQuery attr () - PullRequest
0 голосов
/ 14 декабря 2011

У меня та же проблема, что и здесь: jQuery attr () не может установить атрибут

К сожалению, представленные решения не работают.

Вот код, который я использую:

var text     = document.createElement("text");
var dayLabel = document.createTextNode("test");
$(text).attr("transform", "rotate(30 0 0)");
$(text).append(dayLabel);
$(svg).append(text);

Что я не понимаю, так это когда я смотрю на дерево DOM (с помощью инспектора элементов Safari), я вижу, что элемент имеет набор transform="rotate(90 0 0)",но вращение кажется просто неудачным.

Мой файл jQuery обновлен (1.7.1), и код, который я показал, содержится в «Классе», который создается в этом блоке кода:

$(document).ready(function() { ... right here ... });

... поэтому он выполняется только тогда, когда DOM готов.

Кроме того, не знаю, может ли это помочь, но ...

Эта частькод работает:

$("#schedule").append('<svg id="test2" xmlns="http://www.w3.org/2000/svg" version="1.1"><text transform="rotate(30 0 0)">blabla</text></svg>');

... но этот не:

$("#schedule").append('<svg id="test1" xmlns="http://www.w3.org/2000/svg" version="1.1"></svg>');
    $("#test1").append('<text transform="rotate(30 0 0)">blabla</text>');

По сути, это тот же код, но в 1 и 2 шагах соответственно.Еще раз, в обоих случаях инспектор DOM Safari по-прежнему показывает то же самое, то есть <text transform="rotate(30 0 0)">blabla</text>, но во втором элемент просто не отображается на странице.

1 Ответ

1 голос
/ 14 декабря 2011

Вы используете $(svg).append(text); <- у вас есть переменная с именем svg, в противном случае это должно быть что-то вроде <code>$('svg').append(text);

Вот рабочий FIDDLE

Я установил некоторые текстовые атрибуты и положение, но в противном случае это должно быть именно то, что вы ищете, я думаю?

...