BUG in FF introduced in rev: 4100
rev: 4100 "Greatly reduced the complexity of the width/height methods.
This also fixes #2009, #1870, #1796, #1843, #1839, #1818, #1613, #1415
and #1629"
breaks accordion with option {autoheight: false}
The height calculated and set is too small, the accordion looks cropped
at the bottom, was working fine before rev: 4100
This only in FF2/pc/mac
Thank you!
-will
diff for convenience:
--- core.js(4099)
+++ core.js(4100)
@@ -5,8 +5,8 @@
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
- * $Date: 2007-12-10 20:04:59 +0100 (Mon, 10 Dec 2007) $
- * $Rev: 4094 $
+ * $Date: 2007-12-11 05:40:54 +0100 (Tue, 11 Dec 2007) $
+ * $Rev: 4100 $
*/
// Map over jQuery in case of overwrite
@@ -772,55 +772,22 @@
},
css: function( elem, name, force ) {
- if ( name == "height" || name == "width" ) {
- var old = {}, height, width;
-
- // Revert the padding and border widths to get the
- // correct height/width values
- jQuery.each([ "Top", "Bottom", "Right", "Left" ], function(){
- old[ "padding" + this ] = 0;
- old[ "border" + this + "Width" ] = 0;
- });
-
- // Swap out the padding/border values temporarily
- jQuery.swap( elem, old, function() {
-
- // If the element is visible, then the calculation is easy
- if ( jQuery( elem ).is(":visible") ) {
- height = elem.offsetHeight;
- width = elem.offsetWidth;
-
- // Otherwise, we need to flip out more values
- } else {
- elem = jQuery( elem.cloneNode(true) )
- .find
(":radio").removeAttr("checked").removeAttr("defaultChecked").end()
- .css({
- visibility: "hidden",
- position: "absolute",
- display: "block",
- right: "0",
- left: "0"
- }).appendTo( elem.parentNode )[0];
-
- var position = jQuery.css( elem.parentNode, "position" ) ||
"static";
- if ( position == "static" )
- elem.parentNode.style.position = "relative";
-
- height = elem.clientHeight;
- width = elem.clientWidth;
-
- if ( position == "static" )
- elem.parentNode.style.position = "static";
-
- elem.parentNode.removeChild( elem );
- }
- });
+ if ( name == "width" || name == "height" ) {
+ var width, height, props = { position: "absolute", visibility:
"hidden", display:"block" };
+
+ function getWH() {
+ width = elem.clientWidth;
+ height = elem.clientHeight;
+ }
+
+ if ( jQuery(elem).is(":visible") )
+ getWH();
+ else
+ jQuery.swap( elem, props, getWH );
- return name == "height" ?
- height :
- width;
+ return name == "width" ? width : height;
}
-
+
return jQuery.curCSS( elem, name, force );
},