From bae4a16d61e6c19e4d30b7a7511ae1858a639d44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Zaefferer?= Date: Sat, 31 Jan 2009 16:52:52 +0000 Subject: [PATCH] accordion: another partial fix for #4011, fixes tests/visual/accordion/width.html in FF, IE still buggy --- ui/ui.accordion.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ui/ui.accordion.js b/ui/ui.accordion.js index 6ce36ec45..62f038a1a 100644 --- a/ui/ui.accordion.js +++ b/ui/ui.accordion.js @@ -398,7 +398,14 @@ $.extend($.ui.accordion, { percentDone, showProps = {}, hideProps = {}, - fxAttrs = [ "height", "paddingTop", "paddingBottom" ]; + fxAttrs = [ "height", "paddingTop", "paddingBottom" ], + originalWidth; + // fix width before calculating height of hidden element + if (options.toShow[0]) { + var s = options.toShow; + originalWidth = s[0].style.width; + s.width( parseInt(s.parent().width()) - parseInt(s.css("paddingLeft")) - parseInt(s.css("paddingRight")) - parseInt(s.css("borderLeftWidth")) - parseInt(s.css("borderRightWidth")) ); + } $.each(fxAttrs, function(i, prop) { hideProps[prop] = 'hide'; @@ -431,8 +438,9 @@ $.extend($.ui.accordion, { easing: options.easing, complete: function() { if ( !options.autoHeight ) { - options.toShow.css("height", "auto"); + options.toShow.css("height", ""); } + options.toShow.css("width", originalWidth); options.toShow.css({overflow: overflow}); options.complete(); }