diff options
| author | Igor Minar | 2011-09-01 02:37:32 -0700 |
|---|---|---|
| committer | Igor Minar | 2011-09-01 16:37:06 -0700 |
| commit | 986608fe763482c79dfd0338e5041e5e673fec9f (patch) | |
| tree | 659e9aaf97ab9cfc68966a4655763b166f219858 | |
| parent | 31b86241215bb37cc6bb81f98a47942738d710c2 (diff) | |
| download | angular.js-986608fe763482c79dfd0338e5041e5e673fec9f.tar.bz2 | |
fix(jqLite): special-case attr('class') because of IE9 bug
| -rw-r--r-- | src/jqLite.js | 8 | ||||
| -rw-r--r-- | test/jqLiteSpec.js | 9 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/jqLite.js b/src/jqLite.js index cb761294..ce9e612e 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -245,7 +245,13 @@ forEach({ }, attr: function(element, name, value){ - if (SPECIAL_ATTR[name]) { + if (name === 'class') { + if(isDefined(value)) { + element.className = value; + } else { + return element.className; + } + } else if (SPECIAL_ATTR[name]) { if (isDefined(value)) { element[name] = !!value; } else { diff --git a/test/jqLiteSpec.js b/test/jqLiteSpec.js index c06fcae4..b75289bb 100644 --- a/test/jqLiteSpec.js +++ b/test/jqLiteSpec.js @@ -168,6 +168,15 @@ describe('jqLite', function(){ var elm = jqLite('<div class="any">a</div>'); expect(elm.attr('non-existing')).toBeUndefined(); }); + + it('should special-case "class" attribute', function() { + // stupid IE9 returns null for element.getAttribute('class') when element has ng:class attr + var elm = jqLite('<div class=" any " ng:class="dynCls">a</div>'); + expect(elm.attr('class')).toBe(' any '); + + elm.attr('class', 'foo bar'); + expect(elm.attr('class')).toBe('foo bar'); + }); }); |
