diff options
-rw-r--r-- | src/attributes/classes.js | 7 | ||||
-rw-r--r-- | test/unit/attributes.js | 6 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/attributes/classes.js b/src/attributes/classes.js index 1d24a1851..15a37bc99 100644 --- a/src/attributes/classes.js +++ b/src/attributes/classes.js @@ -100,10 +100,7 @@ jQuery.fn.extend( { toggleClass: function( value, stateVal ) { var type = typeof value, - classNames = type === "string" ? value.match( rnotwhite ) : "", - checker = typeof stateVal === "boolean" ? - function() { return !stateVal; } : - jQuery.fn.hasClass; + classNames = type === "string" ? value.match( rnotwhite ) : []; return this.each( function( i ) { var className, @@ -118,7 +115,7 @@ jQuery.fn.extend( { // Toggle individual class names based on presence or stateVal while ( ( className = classNames[ c++ ] ) ) { - if ( checker.call( self, className ) ) { + if ( stateVal === false || stateVal !== true && self.hasClass( className ) ) { self.removeClass( className ); } else { self.addClass( className ); diff --git a/test/unit/attributes.js b/test/unit/attributes.js index 028931c70..ba9d551aa 100644 --- a/test/unit/attributes.js +++ b/test/unit/attributes.js @@ -1220,7 +1220,7 @@ QUnit.test( "removeClass(undefined) is a no-op", function( assert ) { } ); var testToggleClass = function( valueObj, assert ) { - assert.expect( 9 ); + assert.expect( 11 ); var e = jQuery( "#firstp" ); assert.ok( !e.is( ".test" ), "Assert class not present" ); @@ -1232,8 +1232,12 @@ var testToggleClass = function( valueObj, assert ) { // class name with a boolean e.toggleClass( valueObj( "test" ), false ); assert.ok( !e.is( ".test" ), "Assert class not present" ); + e.toggleClass( valueObj( "test" ), false ); + assert.ok( !e.is( ".test" ), "Assert class still not present" ); e.toggleClass( valueObj( "test" ), true ); assert.ok( e.is( ".test" ), "Assert class present" ); + e.toggleClass( valueObj( "test" ), true ); + assert.ok( e.is( ".test" ), "Assert class still present" ); e.toggleClass( valueObj( "test" ), false ); assert.ok( !e.is( ".test" ), "Assert class not present" ); |