Skip to main content

Search and Top Navigation

#14889 new bug ()

Opened December 12, 2015 10:04PM UTC

Last modified July 26, 2016 03:42PM UTC

Sortable: Wrong placeholder height with tbody items and multiple <tr>s

Reported by: lxg Owned by:
Priority: minor Milestone: none
Component: ui.sortable Version: 1.11.4
Keywords: Cc:
Blocked by: Blocking:
Description

There’s the following issue with the ''Sortable'' widget:

When making a <table> with several <tbody>s which again contain several <tr>s sortable, the placeholder for the <tbody>s is too low. This causes the height of the whole <table> (and the rest of the page below the table) to “flicker” as soon as a <tbody> is being dragged.

Example: http://jsfiddle.net/jzwq5j73/4/

The first part of this problem is that the placeholder for the <tbody> is created with only one <tr> with a series of empty <td>s. This is bad because (a) there may be more than one row, and (b) if the <td>s of the original <tbody> have content, they are likely to be higher than the empty ones in the placeholder.

Source reference: https://github.com/jquery/jquery-ui/blob/1.11.4/ui/sortable.js#L791-L795

The second part is the fact that the placeholder <tbody> doesn’t get the height of the original element, because it already has got a height (even though it’s a wrong one).

Source reference: https://github.com/jquery/jquery-ui/blob/1.11.4/ui/sortable.js#L817

Tested with jQuery UI 1.11.4, but saw this code in the master branch, too.

Attachments (0)
Change History (3)

Changed December 12, 2015 10:16PM UTC by lxg comment:1

_comment0: Btw, 1.11.3 works just fine.1449958712335147
_comment1: → 1449958747997734
_comment2: (nevermind)1449958763858026
_comment3: (deleted)1449958807623086
_comment4: (comment deleted)1449959101264307
_comment5: A “monkey-patch” workaround which works for me is to always assign the original element’s height to the placeholder in https://github.com/jquery/jquery-ui/blob/1.11.4/ui/sortable.js#L8171449959142681991

A “monkey-patch” workaround which works for me is to always assign the original element’s height to the placeholder in https://github.com/jquery/jquery-ui/blob/1.11.4/ui/sortable.js#L817 (i.e. remove the if condition and always execute the block).

Changed February 18, 2016 12:00PM UTC by lxg comment:2

So, does anybody care?

Changed July 26, 2016 03:42PM UTC by scottgonzalez comment:3

component: ui.coreui.sortable