From e53a91909061c7a7280a274990db179b94db81b6 Mon Sep 17 00:00:00 2001 From: Jason Bedard Date: Sat, 11 May 2013 12:34:48 -0700 Subject: [PATCH] Avoid jQuery(this) and a closure for .toggle(Boolean), close gh-1271. --- src/attributes.js | 15 ++++++++++----- src/css.js | 6 ++++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/attributes.js b/src/attributes.js index f7525755f..4da2db6c6 100644 --- a/src/attributes.js +++ b/src/attributes.js @@ -102,8 +102,11 @@ jQuery.fn.extend({ }, toggleClass: function( value, stateVal ) { - var type = typeof value, - isBool = typeof stateVal === "boolean"; + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } if ( jQuery.isFunction( value ) ) { return this.each(function( i ) { @@ -117,13 +120,15 @@ jQuery.fn.extend({ var className, i = 0, self = jQuery( this ), - state = stateVal, classNames = value.match( core_rnotwhite ) || []; while ( (className = classNames[ i++ ]) ) { // check each className given, space separated list - state = isBool ? state : !self.hasClass( className ); - self[ state ? "addClass" : "removeClass" ]( className ); + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } } // Toggle whole class name diff --git a/src/css.js b/src/css.js index d8aa6d605..106d13ecb 100644 --- a/src/css.js +++ b/src/css.js @@ -137,10 +137,12 @@ jQuery.fn.extend({ return showHide( this ); }, toggle: function( state ) { - var bool = typeof state === "boolean"; + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } return this.each(function() { - if ( bool ? state : isHidden( this ) ) { + if ( isHidden( this ) ) { jQuery( this ).show(); } else { jQuery( this ).hide(); -- 2.39.5