IEでtableのrowをjQuery UIでsortableしたい

テーブルの行を並べ替えたくなることってありませんか?ありますよね。なければお帰りください。どうでもいいけどタイトルがルー大柴みたいだ。

$('.mytable').sortable({
    'items' : 'tbody tr',
    'axis'  : 'y'
});

まぁこんな感じで書いたわけです。もちろんFirefoxでは問題なく動作しています。

Internet Explorerェ…

並べかえようとすると、受け側のplaceholderが異常な高さになって、目もあてられない状態に。

jquery.ui sortable using a table and item:tr , placeholder difficulties – Stack Overflow

この辺りの記事を参考に、下記のようにしたら無事動きました。

$('.mytable').sortable({
    'items' : 'tbody tr',
    'axis'  : 'y',
    'start': function (event, ui) {
        ui.placeholder.height(ui.helper.outerHeight());
    }
});

ソート開始時に受け側のtr(placeholder)の高さを、動かしているtr(helper)の高さにしてやるわけですな。ちなみに上で参考にした記事ではIEの場合にtdを設定しているようですが、自分の場合は上ので動いたので気にしていません。上記で解決しない場合、試してみる手はあるかもしれません。

$('.mytable').sortable({
    'items' : 'tbody tr',
    'axis'  : 'y',
    'start': function (event, ui) {
        ui.placeholder.html('<!--[if IE]><td colspan="数字入れて">&nbsp;</td><![endif]-->');
    }
});