Skip to main content

Bug Tracker

Side navigation

#14284 closed bug (duplicate)

Opened August 21, 2013 09:44PM UTC

Closed August 22, 2013 03:44PM UTC

width() on table columns fails in IE due wrong rdisplayswap value

Reported by: deanasnyder@gmail.com Owned by:
Priority: undecided Milestone: None
Component: unfiled Version: 1.10.2
Keywords: Cc:
Blocked by: Blocking:
Description

I added jQuery-based code to an html table that allows you to live-resize its columns by dragging in the header. It works in Firefox, Chrome, Safari, & Opera, but fails in Internet Explorer - on mousedown the columns (wrongly) resize in IE and on mousemove the last column resizes no matter which column you click and drag.

I believe I have tracked the bug down to jQuery's width() function and in particular to its rdisplayswap.test() and the value of the rdisplayswap variable:

rdisplayswap = /^(none|table(?!-c[ea]).+)/

According to the jQuery comments:

certain elements can have dimension info if we invisibly show them

however, it must have a current display style that would benefit from this

And the comment on the rdisplayswap definition says:

// swappable if display is none or starts with table except "table", "table-cell", or "table-caption"

I think determining swappability should also include "table-col", and since it doesn't that's why, for some reason, the jQuery width() function exhibits anomalous behavior in IE.

I tried changing

rdisplayswap = /^(none|table(?!-c[ea]).+)/

to

rdisplayswap = /^(none|table(?!-c[eao]).+)/

and that fixed the problem in IE; but broke column re-sizing in all other browsers!

How can this be fixed?

(I am testing jQuery 1.10.2 in "recent" non-IE browsers [on Mac OS X], and in IE 6, 9, and 10 [on Windows XP, 7, & 8].)

See an example at:

<http://jsbin.com/OKEF/1/edit?html,output>

or:

<http://www.beforeunless.com/pages/dynamicTable-minimum>

Attachments (0)
Change History (1)

Changed August 22, 2013 03:44PM UTC by timmywil comment:1

resolution: → duplicate
status: newclosed

Duplicate of #14283.