This is (finally) fixed in latest SVN and will be in jQuery 1.3.3. -- Brandon Aaron
On Fri, Jun 26, 2009 at 1:50 PM, Nekura Neko<nekura.n...@gmail.com> wrote: > > Okay, so jQuery 1.3.2 defines the visible filter like this: > > Sizzle.selectors.filters.visible = function(elem){ > return elem.offsetWidth > 0 || elem.offsetHeight > 0; > }; > > Now I've got a table of hidden (style="display: none") rows. The user > will click something that will .show() a specific row, and the whole > table -- along with a lot of other stuff -- will be displayed in a > lovely thickbox. > > The problem is that MSIE 8 assigns offsetWidths and offsetHeights to > the rows; even those with "display: none" active on them. In > "compatibility mode," MSIE will set the offsetHeight to 0, but there > will still be an offsetWidth. > > Firefox doesn't have this problem; Chrome doesn't have this problem. > > I'm not sure if MSIE got wildly confused by moving hidden rows into a > thickbox. I know I've broken MSIE's rendering of other similar tables > on the page, but I doubt those have anything to do with jQuery. > > I've gotten around it by using .addClass and .removeClass and > filtering on that new class instead of :visible, but I'd rather know > that :visible is working as intended in the long run. > > Cheers, > JM (wanders off to lunch)