experiment w/ using classList to reduce DOM manipulations

This commit is contained in:
Adam Bradley
2014-02-08 21:45:39 -06:00
parent 84a8e79b21
commit 92b7669b2e

View File

@@ -0,0 +1,28 @@
angular.element.prototype.addClass = function(cssClasses) {
var x, el, existingClasses;
if (cssClasses) {
for(x=0; x<this.length; x++) {
el = this[x];
if(el.setAttribute) {
if(cssClasses.indexOf(' ') < 0) {
el.classList.add(cssClasses)
} else {
existingClasses = (' ' + (el.getAttribute('class') || '') + ' ')
.replace(/[\n\t]/g, " ");
angular.forEach(cssClasses.split(' '), function(cssClass) {
cssClass = cssClass.trim();
if (existingClasses.indexOf(' ' + cssClass + ' ') === -1) {
existingClasses += cssClass + ' ';
}
});
el.setAttribute('class', existingClasses.trim());
}
}
}
}
return this;
};