git.asbjorn.biz
/
jquery.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add function values to addClass, removeClass, toggleClass, text, and removeAttr
[jquery.git]
/
src
/
attributes.js
diff --git
a/src/attributes.js
b/src/attributes.js
index
4405b43
..
8d889fc
100644
(file)
--- a/
src/attributes.js
+++ b/
src/attributes.js
@@
-4,6
+4,12
@@
jQuery.fn.extend({
},
addClass: function( value ) {
},
addClass: function( value ) {
+ if(jQuery.isFunction(value)) {
+ return this.each(function() {
+ jQuery(this).addClass( value.call(this) );
+ });
+ }
+
if ( value && typeof value === "string" ) {
var classNames = (value || "").split(/\s+/);
if ( value && typeof value === "string" ) {
var classNames = (value || "").split(/\s+/);
@@
-29,6
+35,12
@@
jQuery.fn.extend({
},
removeClass: function( value ) {
},
removeClass: function( value ) {
+ if(jQuery.isFunction(value)) {
+ return this.each(function() {
+ jQuery(this).removeClass( value.call(this) );
+ });
+ }
+
if ( (value && typeof value === "string") || value === undefined ) {
var classNames = (value || "").split(/\s+/);
if ( (value && typeof value === "string") || value === undefined ) {
var classNames = (value || "").split(/\s+/);
@@
-113,7
+125,7
@@
jQuery.fn.extend({
// Typecast once if the value is a number
if ( typeof value === "number" ) {
value += '';
// Typecast once if the value is a number
if ( typeof value === "number" ) {
value += '';
- }
+ }
var val = value;
return this.each(function(){
var val = value;
return this.each(function(){
@@
-122,10
+134,10
@@
jQuery.fn.extend({
// Typecast each time if the value is a Function and the appended
// value is therefore different each time.
if( typeof val === "number" ) {
// Typecast each time if the value is a Function and the appended
// value is therefore different each time.
if( typeof val === "number" ) {
- val += '';
+ val += '';
}
}
}
}
-
+
if ( this.nodeType != 1 ) {
return;
}
if ( this.nodeType != 1 ) {
return;
}
@@
-158,6
+170,13
@@
jQuery.each({
},
toggleClass: function( classNames, state ) {
},
toggleClass: function( classNames, state ) {
+ if( jQuery.isFunction(classNames) ) {
+ return this.each(function() {
+ console.log(this);
+ jQuery(this).toggleClass( classNames.call(this), state );
+ });
+ }
+
var type = typeof classNames;
if ( type === "string" ) {
// toggle individual class names
var type = typeof classNames;
if ( type === "string" ) {
// toggle individual class names
@@
-178,7
+197,11
@@
jQuery.each({
}
}
}, function(name, fn){
}
}
}, function(name, fn){
- jQuery.fn[ name ] = function(){
+ jQuery.fn[ name ] = function(val, state){
+ if( jQuery.isFunction( val ) ) {
+ return this.each(function() { jQuery(this)[ name ]( val.call(this), state ); });
+ }
+
return this.each( fn, arguments );
};
});
return this.each( fn, arguments );
};
});
@@
-192,7
+215,7
@@
jQuery.extend({
if ( name in jQuery.fn && name !== "attr" ) {
return jQuery(elem)[name](value);
}
if ( name in jQuery.fn && name !== "attr" ) {
return jQuery(elem)[name](value);
}
-
+
var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc( elem ),
// Whether we are setting (or getting)
set = value !== undefined;
var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc( elem ),
// Whether we are setting (or getting)
set = value !== undefined;