git.asbjorn.biz
/
jquery.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
600d314
)
Fixing some bugs in the re-tooling of toggleClass, adding in some performance optimiz...
author
jeresig
<jeresig@gmail.com>
Wed, 6 Jan 2010 20:23:30 +0000
(15:23 -0500)
committer
jeresig
<jeresig@gmail.com>
Wed, 6 Jan 2010 20:23:30 +0000
(15:23 -0500)
src/attributes.js
patch
|
blob
|
history
diff --git
a/src/attributes.js
b/src/attributes.js
index
664a024
..
a5a6662
100644
(file)
--- a/
src/attributes.js
+++ b/
src/attributes.js
@@
-93,26
+93,27
@@
jQuery.fn.extend({
return this;
},
return this;
},
- toggleClass: function( classNames, state ) {
- var type = typeof classNames;
+ toggleClass: function( value, stateVal ) {
+ var type = typeof value, isBool = typeof stateVal === "boolean";
- if ( jQuery.isFunction( classNames ) ) {
+ if ( jQuery.isFunction( value ) ) {
return this.each(function(i) {
var self = jQuery(this);
return this.each(function(i) {
var self = jQuery(this);
- self.toggleClass( classNames.call(this, i, self.attr("class")), state );
+ self.toggleClass( value.call(this, i, self.attr("class")), stateVal );
});
}
});
}
- return this.each(function(){
+ return this.each(function() {
if ( type === "string" ) {
// toggle individual class names
if ( type === "string" ) {
// toggle individual class names
- var isBool = typeof state === "boolean", className, i = 0,
- classNames = classNames.split( rspace );
+ var className, i = 0, self = jQuery(this),
+ state = stateVal,
+ classNames = value.split( rspace );
while ( (className = classNames[ i++ ]) ) {
// check each className given, space seperated list
while ( (className = classNames[ i++ ]) ) {
// check each className given, space seperated list
- state = isBool ? state : !jQuery(this).hasClass( className );
- jQuery(this)[ state ? "addClass" : "removeClass" ]( className );
+ state = isBool ? state : !self.hasClass( className );
+ self[ state ? "addClass" : "removeClass" ]( className );
}
} else if ( type === "undefined" || type === "boolean" ) {
}
} else if ( type === "undefined" || type === "boolean" ) {
@@
-122,7
+123,7
@@
jQuery.fn.extend({
}
// toggle whole className
}
// toggle whole className
- this.className = this.className || classNames === false ? "" : jQuery.data( this, "__className__" ) || "";
+ this.className = this.className || value === false ? "" : jQuery.data( this, "__className__" ) || "";
}
});
},
}
});
},