diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/jqLite.js | 18 | ||||
| -rw-r--r-- | src/ng/animate.js | 8 |
2 files changed, 18 insertions, 8 deletions
diff --git a/src/jqLite.js b/src/jqLite.js index 1e1d025c..d3110788 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -279,17 +279,17 @@ function JQLiteData(element, key, value) { } function JQLiteHasClass(element, selector) { - return ((" " + element.className + " ").replace(/[\n\t]/g, " "). + return ((" " + (element.getAttribute('class') || '') + " ").replace(/[\n\t]/g, " "). indexOf( " " + selector + " " ) > -1); } function JQLiteRemoveClass(element, cssClasses) { if (cssClasses) { forEach(cssClasses.split(' '), function(cssClass) { - element.className = trim( - (" " + element.className + " ") + element.setAttribute('class', trim( + (" " + (element.getAttribute('class') || '') + " ") .replace(/[\n\t]/g, " ") - .replace(" " + trim(cssClass) + " ", " ") + .replace(" " + trim(cssClass) + " ", " ")) ); }); } @@ -297,11 +297,17 @@ function JQLiteRemoveClass(element, cssClasses) { function JQLiteAddClass(element, cssClasses) { if (cssClasses) { + var existingClasses = (' ' + (element.getAttribute('class') || '') + ' ') + .replace(/[\n\t]/g, " "); + forEach(cssClasses.split(' '), function(cssClass) { - if (!JQLiteHasClass(element, cssClass)) { - element.className = trim(element.className + ' ' + trim(cssClass)); + cssClass = trim(cssClass); + if (existingClasses.indexOf(' ' + cssClass + ' ') === -1) { + existingClasses += cssClass + ' '; } }); + + element.setAttribute('class', trim(existingClasses)); } } diff --git a/src/ng/animate.js b/src/ng/animate.js index fbd17848..b3fb08de 100644 --- a/src/ng/animate.js +++ b/src/ng/animate.js @@ -156,7 +156,9 @@ var $AnimateProvider = ['$provide', function($provide) { className = isString(className) ? className : isArray(className) ? className.join(' ') : ''; - element.addClass(className); + forEach(element, function (element) { + JQLiteAddClass(element, className); + }); done && $timeout(done, 0, false); }, @@ -177,7 +179,9 @@ var $AnimateProvider = ['$provide', function($provide) { className = isString(className) ? className : isArray(className) ? className.join(' ') : ''; - element.removeClass(className); + forEach(element, function (element) { + JQLiteRemoveClass(element, className); + }); done && $timeout(done, 0, false); }, |
