Attributes: add SVG class manipulation

- Note: support for SVG is limited in jQuery,
  but this is one area where the cost vs benefit ratio
  was acceptable.

Fixes gh-2199
Close gh-2268
This commit is contained in:
Timmy Willison
2015-05-06 13:30:16 -07:00
parent 56bb677725
commit 20aaed367f
2 changed files with 73 additions and 31 deletions

View File

@@ -1478,3 +1478,31 @@ test( "Insignificant white space returned for $(option).val() (#14858)", functio
val = jQuery( "<option> test </option>" ).val();
equal( val.length, 4, "insignificant white-space returned for value" );
});
test( "SVG class manipulation (gh-2199)", function() {
expect( 12 );
function createSVGElement( nodeName ) {
return document.createElementNS( "http://www.w3.org/2000/svg", nodeName );
}
jQuery.each([
"svg",
"rect",
"g"
], function() {
var elem = jQuery( createSVGElement( this ) );
elem.addClass( "awesome" );
ok( elem.hasClass( "awesome" ), "SVG element (" + this + ") has added class" );
elem.removeClass( "awesome" );
ok( !elem.hasClass( "awesome" ), "SVG element (" + this + ") removes the class" );
elem.toggleClass( "awesome" );
ok( elem.hasClass( "awesome" ), "SVG element (" + this + ") toggles the class on" );
elem.toggleClass( "awesome" );
ok( !elem.hasClass( "awesome" ), "SVG element (" + this + ") toggles the class off" );
});
});