Есть ли способ добавить чувствительный к регистру атрибут, используя jQuery? - PullRequest
4 голосов
/ 18 августа 2010

Я работаю с jQuery, чтобы изменить некоторые svg файлы данные на лету ... одна из вещей, которые мне нужно сделать, это изменить атрибут "viewBox".Однако при использовании jQuery, как показано во фрагменте ниже, он выполняет toLower () для атрибута, поэтому «viewBox» становится «viewbox».Обычно мне было бы все равно, но это, похоже, нарушает рендеринг SVG (по крайней мере, в Mac OS X в Finder и в Safari).

Есть ли способ изменить это в jQuery (с помощью флага или чего-то еще)или мне придется потом заменить строку?

var $svg = $('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"></svg>');
// do some work here
$svg.attr('viewBox', 0 + ' ' + 0 + ' ' + 288 + ' ' + 288);

Ответы [ 3 ]

3 голосов
/ 22 августа 2010

Вы можете использовать API SVG DOM для установки viewBox:

$svg.each(function(index,node){
    node.viewBox.baseVal.x = 0
    node.viewBox.baseVal.y = 0
    node.viewBox.baseVal.width = 288
    node.viewBox.baseVal.height = 288
})

Более подробную информацию можно найти в спецификации SVG: http://www.w3.org/TR/SVG/coords.html#ViewBoxAttribute

1 голос
/ 22 августа 2010

Что делать, если вы выходите из объекта jQuery только для установки атрибута.например,

var $svg = $('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"></svg>');

$svg[0].setAttribute('viewBox', 0 + ' ' + 0 + ' ' + 288 + ' ' + 288);

Примечание: вы также можете проверить этот плагин jQuery: http://keith -wood.name / svg.html

1 голос
/ 18 августа 2010

Если вы не хотите изменять саму библиотеку, я не вижу способа избежать замены строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...