Skip to content

Instantly share code, notes, and snippets.

@shshaw
Last active January 3, 2016 22:19
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save shshaw/8527276 to your computer and use it in GitHub Desktop.
Save shshaw/8527276 to your computer and use it in GitHub Desktop.
Modifies Add/Remove class for jQuery to work with SVG elements.
(function($){
var addClass = $.fn.addClass;
$.fn.addClass = function(value) {
var orig = addClass.apply(this, arguments);
var elem,
i = 0,
len = this.length;
for (; i < len; i++ ) {
elem = this[ i ];
if ( elem instanceof SVGElement ) {
var classes = $(elem).attr('class');
if ( classes ) {
var index = classes.search(value);
if (index === -1) {
classes = classes + " " + value;
$(elem).attr('class', classes);
}
} else {
$(elem).attr('class', value);
}
}
}
return orig;
};
var removeClass = $.fn.removeClass;
$.fn.removeClass = function(value) {
var orig = removeClass.apply(this, arguments);
var elem,
i = 0,
len = this.length;
for (; i < len; i++ ) {
elem = this[ i ];
if ( elem instanceof SVGElement ) {
var classes = $(elem).attr('class');
if ( classes ) {
var index = classes.search(value);
if (index !== -1) {
classes = classes.substring(0, index) + classes.substring((index + value.length), classes.length);
$(elem).attr('class', classes);
}
}
}
}
return orig;
};
})(jQuery);
@felipegenuino
Copy link

Obrigado, me ajudou muito :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment