@@ -37,30 +37,31 @@ jQuery.fn.extend({
37
37
} ,
38
38
39
39
addClass : function ( value ) {
40
+ var classNames , i , l , elem , setClass , c , cl ;
41
+
40
42
if ( jQuery . isFunction ( value ) ) {
41
- return this . each ( function ( i ) {
42
- var self = jQuery ( this ) ;
43
- self . addClass ( value . call ( this , i , self . attr ( "class" ) || "" ) ) ;
43
+ return this . each ( function ( j ) {
44
+ var self = jQuery ( this ) ;
45
+ self . addClass ( value . call ( this , j , self . attr ( "class" ) || "" ) ) ;
44
46
} ) ;
45
47
}
46
48
47
49
if ( value && typeof value === "string" ) {
48
- var classNames = ( value || "" ) . split ( rspace ) ;
50
+ classNames = value . split ( rspace ) ;
49
51
50
- for ( var i = 0 , l = this . length ; i < l ; i ++ ) {
51
- var elem = this [ i ] ;
52
+ for ( i = 0 , l = this . length ; i < l ; i ++ ) {
53
+ elem = this [ i ] ;
52
54
53
55
if ( elem . nodeType === 1 ) {
54
- if ( ! elem . className ) {
56
+ if ( ! elem . className && classNames . length === 1 ) {
55
57
elem . className = value ;
56
58
57
59
} else {
58
- var className = " " + elem . className + " " ,
59
- setClass = elem . className ;
60
+ setClass = elem . className ;
60
61
61
- for ( var c = 0 , cl = classNames . length ; c < cl ; c ++ ) {
62
- if ( className . indexOf ( " " + classNames [ c ] + " " ) < 0 ) {
63
- setClass += " " + classNames [ c ] ;
62
+ for ( c = 0 , cl = classNames . length ; c < cl ; c ++ ) {
63
+ if ( ! ~ setClass . indexOf ( classNames [ c ] ) ) {
64
+ setClass += " " + classNames [ c ] ;
64
65
}
65
66
}
66
67
elem . className = jQuery . trim ( setClass ) ;
@@ -73,24 +74,26 @@ jQuery.fn.extend({
73
74
} ,
74
75
75
76
removeClass : function ( value ) {
76
- if ( jQuery . isFunction ( value ) ) {
77
- return this . each ( function ( i ) {
78
- var self = jQuery ( this ) ;
79
- self . removeClass ( value . call ( this , i , self . attr ( "class" ) ) ) ;
77
+ var classNames , i , l , elem , className , c , cl ;
78
+
79
+ if ( jQuery . isFunction ( value ) ) {
80
+ return this . each ( function ( j ) {
81
+ var self = jQuery ( this ) ;
82
+ self . removeClass ( value . call ( this , j , self . attr ( "class" ) ) ) ;
80
83
} ) ;
81
84
}
82
85
83
86
if ( ( value && typeof value === "string" ) || value === undefined ) {
84
- var classNames = ( value || "" ) . split ( rspace ) ;
87
+ classNames = ( value || "" ) . split ( rspace ) ;
85
88
86
- for ( var i = 0 , l = this . length ; i < l ; i ++ ) {
87
- var elem = this [ i ] ;
89
+ for ( i = 0 , l = this . length ; i < l ; i ++ ) {
90
+ elem = this [ i ] ;
88
91
89
92
if ( elem . nodeType === 1 && elem . className ) {
90
93
if ( value ) {
91
- var className = ( " " + elem . className + " " ) . replace ( rclass , " " ) ;
92
- for ( var c = 0 , cl = classNames . length ; c < cl ; c ++ ) {
93
- className = className . replace ( " " + classNames [ c ] + " " , " " ) ;
94
+ className = ( " " + elem . className + " " ) . replace ( rclass , " " ) ;
95
+ for ( c = 0 , cl = classNames . length ; c < cl ; c ++ ) {
96
+ className = className . replace ( " " + classNames [ c ] + " " , " " ) ;
94
97
}
95
98
elem . className = jQuery . trim ( className ) ;
96
99
0 commit comments