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)

Reply via email to