Skip to content
Permalink
Browse files

Fix #14164: assign className in addClass/removeClass only if changed. C…

…lose gh-1331.
  • Loading branch information...
jdunck authored and mgol committed Aug 19, 2013
1 parent 32e803c commit c418b94eb48188cd9329519ae5e030a52dd81cc9
Showing with 13 additions and 4 deletions.
  1. +13 −4 src/attributes/classes.js
@@ -9,7 +9,7 @@ var rclass = /[\t\r\n\f]/g;

jQuery.fn.extend({
addClass: function( value ) {
var classes, elem, cur, clazz, j,
var classes, elem, cur, clazz, j, finalValue,
i = 0,
len = this.length,
proceed = typeof value === "string" && value;
@@ -38,8 +38,12 @@ jQuery.fn.extend({
cur += clazz + " ";
}
}
elem.className = jQuery.trim( cur );

// only assign if different to avoid unneeded rendering.
finalValue = jQuery.trim( cur );
if ( elem.className !== finalValue ) {
elem.className = finalValue;
}
}
}
}
@@ -48,7 +52,7 @@ jQuery.fn.extend({
},

removeClass: function( value ) {
var classes, elem, cur, clazz, j,
var classes, elem, cur, clazz, j, finalValue,
i = 0,
len = this.length,
proceed = arguments.length === 0 || typeof value === "string" && value;
@@ -77,7 +81,12 @@ jQuery.fn.extend({
cur = cur.replace( " " + clazz + " ", " " );
}
}
elem.className = value ? jQuery.trim( cur ) : "";

// only assign if different to avoid unneeded rendering.
finalValue = value ? jQuery.trim( cur ) : "";
if ( elem.className !== finalValue ) {
elem.className = finalValue;
}
}
}
}

0 comments on commit c418b94

Please sign in to comment.
You can’t perform that action at this time.