SVG — не работают функции jQuery addClass() и removeClass()

Для создания интерактивной схемы метро выбрали графический объект SVG.
SVG — векторная графика и очень хорошо подходит для изображения карт и схем. Кроме того разметка svg очень схожа с html и людям знакомым с html очень просто работать с svg.
Но как выяснилось есть некие траблы при работе: jQuery работает с SVG не всегда корректно. Например, не работают функции addClass() и removeClass(). Пришлось использовать свои функции для удаления и добавления классов в SVG

jQuery.fn.myAddClass = function (classTitle) {
return this.each(function() {
var oldClass = jQuery(this).attr(«class»);
oldClass = oldClass ? oldClass : »;
jQuery(this).attr(«class», (oldClass+» «+classTitle).trim());
});
}
jQuery.fn.myRemoveClass = function (classTitle) {
return this.each(function() {
var oldClass = jQuery(this).attr(«class»);
var startpos = oldClass.indexOf(classTitle);
var endpos = startpos + classTitle.length;
var newClass = oldClass.substring(0, startpos).trim() + » » + oldClass.substring(endpos).trim();
if (!newClass.trim())
jQuery(this).removeAttr(«class»);
else
jQuery(this).attr(«class», newClass.trim());
});
}

Ну и конечно SVG не работает в старых браузерах. Работает в IE 8+, FF 31+, GC 31+.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

шесть + десять =