2012-07-31
jQueryで並び替えしたいけど、できなかった話
jQueryのSortable機能を利用して、要素の並び替えがドラッグ&ドロップでできるらしく、人のコードを真似して作ってはみたのだが・・・・
IEとFirefoxその他では、挙動が違う!!
ってことで、あぁ・・・困った。
こういうことが起こると、IEなんぞいつまで開発するんだ!って思う。
(勘弁してほしいのね)
Firefoxならば、UL構造でもTABLE構造でもちゃんと動くのだけれど、IEはULなら動くけど、TABLEの場合、
1) TBODYタグを追加して、そのTBODYタグをid=”sortable”にするということ
2) TABLEタグをstyle=”position:relative;”にすること
が必要なのだ。
全くめんどっちぃ=と思うが、とりあえずここまではOK。
ところが、TABLEをさらにDIVタグで囲んでいるところ(※)があって、そこはどうしてもうまくいかなかった。1つめの並び替えは問題なくいくのだが、続けてドラッグ&ドロップすると、半透明で表示される要素がカーソルの位置ではなく上の方にあるではないか・・・
どうも、並び替えた後の位置が正しく設定されていないようで、アレコレと無い脳みそをフル活動させてみたのだが、どうも私には無理!な範疇に入ってしまったようなので、もう、DIVの中身のTABLEをUL構造に変更して事なきを得た。
(※)表示範囲が決まっているけどTABLEがデカいということで、DIVタグ内でスクロールさせている。これのせいで、どうもうまくいかない。
結局、解決はできなかったという、悲しいお話。