I've been looking at this issue in firefox and it looks like the bug
was introduced when fixing a bug in opera. this patch addresses the
issue at least in firefox for jquery version 1.2.2 (not sure what the
opera impact is - haven't tested that).
Index: jquery.js
===================================================================
--- jquery.js (revision 36998)
+++ jquery.js (working copy)
@@ -3341,7 +3341,7 @@
// Get parent scroll offsets
while ( parent && parent.tagName && !/^body|html$/
i.test(parent.tagName) ) {
// Remove parent scroll UNLESS that parent is inline or a table
to work around Opera inline/table scrollLeft/Top bug
- if ( !/^inline|table.*$/i.test(jQuery.css(parent, "display")) )
+ if ( !/^inline|table.*[^group]$/i.test(jQuery.css(parent,
"display")) )
// Subtract parent scroll offsets
add( -parent.scrollLeft, -parent.scrollTop );
basically, when the tbody has been scrolled, you need to deduct that
scrollTop and scrollLeft. so for displays matching table-.+-group
(table-row-group, table-header-group...) those scrollTop/Lefts should
be respected.