jQuery uiのsortableを実行するさい、tableタグを利用するときは以下の注意点がある。
- tbodyタグが必要
 - ドラッグする要素の幅が小さくなる
 
【改善点】
tbodyが必要
ドラッグするための項目の親要素につけたクラスもしくはIDに対してsortableを実行するため、trがドラッグ対象となる場合、tableタグにsortableしても、ブラウザによってtbodyタグがない場合自動で挿入する自動補完機能が始まるため、任意でtbodyタグをつける必要がある。
<table> <tbody class="sortable">// 任意で設定 <tr> <th>項目</th><td>内容</td> </tr> <tr> <th>項目</th><td>内容</td> </tr> <tr> <th>項目</th><td>内容</td> </tr> </tbody> </table>
ドラッグする要素の幅
表示しているもののwidthを取得してドラッグしている項目に適応するように、オプションを追加する。
$(function(){
    function fixPlaceHolderWidth(event, ui){
        ui.children().each(function(){
            $(this).width($(this).width());
        });
        return ui;
    };
    $('.sortable').sortable({
        start: function(event, ui){
            ui.placeholder.height(ui.helper.outerHeight());
        },
        helper: fixPlaceHolderWidth
    });
});