diff options
Diffstat (limited to 'src/ngAnimate/animate.js')
| -rw-r--r-- | src/ngAnimate/animate.js | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/ngAnimate/animate.js b/src/ngAnimate/animate.js index 3c9ea9a9..838e210f 100644 --- a/src/ngAnimate/animate.js +++ b/src/ngAnimate/animate.js @@ -541,6 +541,16 @@ angular.module('ngAnimate', ['ng']) (ngAnimateState.done || noop)(); } + //There is no point in perform a class-based animation if the element already contains + //(on addClass) or doesn't contain (on removeClass) the className being animated. + //The reason why this is being called after the previous animations are cancelled + //is so that the CSS classes present on the element can be properly examined. + if((event == 'addClass' && element.hasClass(className)) || + (event == 'removeClass' && !element.hasClass(className))) { + onComplete && onComplete(); + return; + } + element.data(NG_ANIMATE_STATE, { running:true, structural:!isClassBased, |
