Skip to content

Instantly share code, notes, and snippets.

@julianxhokaxhiu
Forked from justinmc/svgclass.js
Last active August 29, 2015 14:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save julianxhokaxhiu/4c28a2b25f283c139b8f to your computer and use it in GitHub Desktop.
Save julianxhokaxhiu/4c28a2b25f283c139b8f to your computer and use it in GitHub Desktop.
(function($){
/* addClass shim
****************************************************/
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.indexOf(value);
if (index === -1) {
classes = classes + " " + value;
$(elem).attr('class', classes);
}
} else {
$(elem).attr('class', value);
}
}
}
return orig;
};
/* removeClass shim
****************************************************/
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.indexOf(value);
if (index !== -1) {
classes = classes.substring(0, index) + classes.substring((index + value.length), classes.length);
$(elem).attr('class', classes);
}
}
}
}
return orig;
};
/* hasClass shim
****************************************************/
var hasClass = $.fn.hasClass;
$.fn.hasClass = function(value) {
var orig = hasClass.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 ) {
if ( classes.indexOf(value) === -1 ) {
return false;
} else {
return true;
}
} else {
return false;
}
}
}
return orig;
};
})(jQuery);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment