Skip to content

Commit c003cd6

Browse files
dmethvingibson042
authored andcommitted
Attributes: Use simpler boolean check vs a function call
Ref gh-2491 (cherry picked from commit 4bf1a09)
1 parent f24726d commit c003cd6

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

src/attributes/classes.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,7 @@ jQuery.fn.extend( {
100100

101101
toggleClass: function( value, stateVal ) {
102102
var type = typeof value,
103-
classNames = type === "string" ? value.match( rnotwhite ) : "",
104-
checker = typeof stateVal === "boolean" ?
105-
function() { return !stateVal; } :
106-
jQuery.fn.hasClass;
103+
classNames = type === "string" ? value.match( rnotwhite ) : [];
107104

108105
return this.each( function( i ) {
109106
var className,
@@ -118,7 +115,7 @@ jQuery.fn.extend( {
118115
// Toggle individual class names based on presence or stateVal
119116
while ( ( className = classNames[ c++ ] ) ) {
120117

121-
if ( checker.call( self, className ) ) {
118+
if ( stateVal === false || stateVal !== true && self.hasClass( className ) ) {
122119
self.removeClass( className );
123120
} else {
124121
self.addClass( className );

test/unit/attributes.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1220,7 +1220,7 @@ QUnit.test( "removeClass(undefined) is a no-op", function( assert ) {
12201220
} );
12211221

12221222
var testToggleClass = function( valueObj, assert ) {
1223-
assert.expect( 9 );
1223+
assert.expect( 11 );
12241224

12251225
var e = jQuery( "#firstp" );
12261226
assert.ok( !e.is( ".test" ), "Assert class not present" );
@@ -1232,8 +1232,12 @@ var testToggleClass = function( valueObj, assert ) {
12321232
// class name with a boolean
12331233
e.toggleClass( valueObj( "test" ), false );
12341234
assert.ok( !e.is( ".test" ), "Assert class not present" );
1235+
e.toggleClass( valueObj( "test" ), false );
1236+
assert.ok( !e.is( ".test" ), "Assert class still not present" );
12351237
e.toggleClass( valueObj( "test" ), true );
12361238
assert.ok( e.is( ".test" ), "Assert class present" );
1239+
e.toggleClass( valueObj( "test" ), true );
1240+
assert.ok( e.is( ".test" ), "Assert class still present" );
12371241
e.toggleClass( valueObj( "test" ), false );
12381242
assert.ok( !e.is( ".test" ), "Assert class not present" );
12391243

0 commit comments

Comments
 (0)