From 17d2ced9cc7e45d1d7272a1217861e598e5522dd Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Wed, 14 Jul 2010 17:48:09 -0700 Subject: appease IE on CSS styles --- src/directives.js | 4 ++-- src/jqLite.js | 19 +++++++++++-------- 2 files changed, 13 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/directives.js b/src/directives.js index 4e7c070b..bcc427e8 100644 --- a/src/directives.js +++ b/src/directives.js @@ -254,11 +254,11 @@ angularDirective("ng:hide", function(expression, element){ angularDirective("ng:style", function(expression, element){ return function(element){ - var resetStyle = element.css(); + var resetStyle = getStyle(element); this.$onEval(function(){ var style = this.$eval(expression) || {}, key, mergedStyle = {}; for(key in style) { - if (typeof resetStyle[key] == 'undefined') resetStyle[key] = null; + if (resetStyle[key] === undefined) resetStyle[key] = ''; mergedStyle[key] = style[key]; } for(key in resetStyle) { diff --git a/src/jqLite.js b/src/jqLite.js index a024507f..de1884a3 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -36,6 +36,16 @@ function jqClearData(element) { } } +function getStyle(element) { + var current = {}, style = element[0].style, value; + for (var name in style) { + value = style[name]; + if (1*name != name && name != 'cssText' && value && typeof value == 'string' && value !='false') + current[name] = value; + } + return current; +} + function JQLite(element) { if (isElement(element)) { this[0] = element; @@ -175,15 +185,8 @@ JQLite.prototype = { } else { return style[name]; } - } else if(name) { - extend(style, name); } else { - var current = {}; - for (var i=0; i