2014-09-02 30 views
0

這不是您使用JQuery UI的Sortable的標準用法。而不是排序錶行,我排序tbody標籤,它一次移動多行。當您移動一組行時,行的列寬將摺疊。通常情況下,您會使用幫助器來保持列的寬度,但標準的不適用於這種情況。使用TBody和JQuery排序時摺疊錶行

這是jsFiddle

移動tbody選項時可以看到寬度摺疊。

下面是通常會與助手各行工作的代碼,但對於行的TBODY不起作用。

$('table').sortable({ 
    cursor: 'move', 
    items: 'tbody', 
    helper: function(e, ui) { 
     ui.children().each(function() { 
      $(this).width($(this).width()); 
     }); 
     return ui; 
    }, 
    forcePlaceholderSize: true, 
    placeholder: 'placeholder' 
}); 

有人可以幫助拿出一個助手,使用Tbody標籤時保持寬度?

回答

3

不要問我爲什麼,但jQuery刪除<tr>元素上的display: table;,並用display: block;替換它。因此你的崩潰寬度。只需使用由jQuery UI添加的輔助類到表中,同時拖動它以將顯示更改回來。

.ui-sortable-helper tr { 
    display:table; 
} 

乾杯!

+0

這工作!謝謝!雖然可能會添加另一個奇怪的行爲與錯列「x,y」在這裏看到:[更新jsFiddle](http://jsfiddle.net/md9qwgcb/6/) 編輯:它也不會維護的寬度個別細胞雖然。任何想法如何做到這一點? – 2014-09-02 01:53:35

+0

不幸的是經過進一步測試,這並不能解決所有問題。這是一個實現的截圖。請注意,列不會保留其寬度,並且colspan = 3單元格會摺疊到其最小寬度。 [imgur專輯](http://imgur.com/a/KAZpG) – 2014-09-02 02:12:05

+0

你能提供*那*標記嗎?我不確定如果沒有使用與你相同的東西,我可以提供幫助。 – pizzasynthesis 2014-09-02 23:52:57