jQuery :: ネストしたリスト + ui.sortable.js
2009/9/28 (Mon) at 12:30 pm
jQueryのuiはべんりなオモチャパックというかんじでいろいろそろってます。sortable.jsをときどき使うのですが、ネストしたリストでこれを使うと、動きがままならないときがあって、jumpyというんですかね、要素をドラッグして移動させようとすると、ビョーンとへんなところにいっちゃうときがある。ネストしたもんじゃなければパーフェクトなのですが。。オプションの中にconnectWithてのがあって、これを指定するとソート対象のli要素をあっちこっちにも動かせるようになるわけですが、ネストしてるヤツの場合は、ここに親要素子要素を指定すりゃいいはずなんだけど、なぜかビョーンが発生する。sortableのオプションについて詳しくはこちら↓
私の指定の仕方が悪いのだろうかと思ってたのですが、やはり似たようなジタバタをしている方がいるみたいで↓
jQuery UI GROUP - sortables question - nested lists
上のリンクからあれこれ辿ってみたらば、現状において、以下の2つの選択肢があることがわかりました。ふもふも。
その1。ネストしたリスト専用sortable.js改造版↓
その2。ネストしたリストで使えるプラグイン↓
その1の方は、jQueryのuiのsortable.jsに機能追加したもんで、sortable.jsと差し替えて使えます。nestedというオプションが追加されており、さらに、serializeとmaxLevels、maxItemsてのが追加されています。私的にはmaxLevelsはかなり欲しかった機能なのでおぉおおおと思いました。ネストの深さを指定できるのですね。これはよさげ。さっきダウンロードしようかと思ったらリンク切れてて、なんだと思ったらソースの方と比べるとわかるんですが、単純なタイプミスみたい。ソースのヘッダの方をコピペするとダウンロードできますよ。なんか頼りないヤツだなと思いつつ。。。
その2の方は、開発ページの日付を見るとかなり古いんですが、jQuery1.1xの時代につくられたもんですが、1.3でも動きますというんでやってみたら確かに動きました。ちょっといぢった限りだと、これがいちばん私的には動きがいいんですが、どこがどういいかというと、シュッシュッとドラッグしやすいかんじがするからこれがいちばんいいなと思うんだけど、これ、使用ライブラリがアレコレ多い。
あとから追記。その2のヤツはjQuery用のリッチインターフェイス用のライブラリコレクション、InterfaceのSortablesを改造したものってことでした。本家のSortablesについてはこちら↓
http://interface.eyecon.ro/docs/sort
どちらも一長一短で悩ましい限り。jQueryの本家のUIのsortableがver.upして安定してくれたらいちばんいいのですが。
コメント・プリーズ!
PROFILE![]()
藤居ヒロヤ。ウェブデザイナー/ウェブディレクター。ウェブデザインオフィス、3OT NET主宰。名古屋市中区。「優しいデザイン」「激しいデザイン」「正しいデザイン」「セクシーなデザイン」「泣けるデザイン」「もっともなデザイン」... 。あなただけのウェブデザインを丹精込めておつくり致します。見積り依頼等、お気軽にお問い合わせ下さい。
- www. http://www.3ot.net/
- email. admin [atmark] 3ot.net
- phone. 052 323 7376
RECENT ENTRIES![]()
- トウモロコシがおいしい
- ダイコクドラッグが近所にできた
- ライブドアのBLOGOSをよく読みます
- jQuery :: 画像のリロード
- タムの絵
- Javascript :: ecl.jsにながらくお世話になりました
- サーバ移転&ブログのデザインをすこし変えました
- php :: 正規表現 :: 名前つきキャプチャというのを習った
- jQuery :: ネストしたリスト + ui.sortable.js
- jQuery :: event delegationてナニ?
RECENT COMMENTS![]()
- トウモロコシがおいしい [4]
- ふ (07/09)
- いら (07/03)
- ふ (07/03)
- いら (07/03)
- php :: ファイルを強制的にダウンロードさせる [9]
- ふ (05/26)
- ふ (05/26)
- ふ (05/26)
- esperia (05/26)
- esperia (05/26)
- ふ (05/25)
- esperia (05/25)
- ふ (04/14)
- とほりすがり (04/13)
- タムの絵 [2]
- ふ (12/05)
- いら (12/04)
TOOLS![]()
- s-box.js
- Link2WikipediaEncoder
- QR_CodeGenerator
- PagerankChecker
- IntrocucePhpCodeOnBlog
- FaviconGenerator
- Whois
- SiteThumbnailGenerator (Beta)
- EmailAddressEncoder (Legacy!)
BOOKMARKS![]()
RESOURCES![]()
- 99designs
- COMPUTER ARTS
- CPAN
- PHP標準関数逆引き辞典
- SMASHING MAGAZINE
- UNIXコマンド
- ajaxload.info
- deviantART
- deviantART :: PS Brushes
- deviantART :: PS Shapes
- fotosearch.com
- hotscripts.com
- hotscripts.com :: php
- iconlet.com
- jQuery Reference
- php.net :: 関数レファレンス
- psbrushes.net
- turnkeyforms.com
ARCHIVE![]()
- 2010年7月 (1)
- 2010年1月 (1)
- 2009年12月 (2)
- 2009年11月 (3)
- 2009年10月 (1)
- 2009年9月 (9)
- 2009年8月 (7)
- 2009年6月 (7)
- 2009年5月 (1)
- 2009年4月 (8)
- 2009年3月 (1)
- 2009年1月 (1)
- 2008年12月 (3)
- 2008年11月 (1)
- 2008年4月 (1)
- 2008年1月 (3)
- 2007年12月 (1)
- 2007年10月 (3)
- 2007年9月 (5)
- 2007年8月 (4)
- 2007年7月 (13)
- 2007年6月 (22)
- 2007年5月 (30)
- 2007年4月 (15)
- 2007年3月 (12)
- 2007年2月 (7)
- 2007年1月 (16)
- 2006年12月 (23)
- 2006年11月 (9)
- 2006年10月 (3)
- 2006年9月 (2)
- 2006年8月 (6)
- 2006年7月 (4)
- 2006年6月 (6)
- 2006年5月 (10)
- 2006年3月 (17)
- 2006年2月 (8)
- すべての投稿 (266)

さっき知り合いのディレクターとしゃべってて、これの話をしましたら「いったいぜんたいsortableをナニに使うのであるか?」と質問されました。普通のウェブサイトでそんな機能はあまり必要ないから不思議に思ったみたいです。私はこれをCMSというか、それほど大袈裟なもんじゃなくても、管理ページのインターフェイスに使います。カテゴリをパパッと変えたりとかですね、あとファイルマネージャー的なもんとかですかね。あとはなにに使えばべんりですかね。
その後。
その1のヤツを試したらなかなかいいかんじ。ビョーンがなくなったよ。maxLevelsもべんりだし、すばらしい!頼りないヤツなんて失礼なことを書いてしまった。すません。作者の方にお礼のメールをして「リンクちがってますヨ」と書いときました。
その後のその後。
このエントリで紹介したふたつを入れてみてやってみたところ、どちらもちゃんと動くんですが、後者の方が動きがいいかんじがします。なんていうか、こちらのほうがずりずりとドラッグしやすいような気がする。ブラウザにもよるでしょうが。最後の更新から1年以上経過してますが、jQuery1.3.2で動きます。
またこちらにはネストの深さを指定するmaxLevelというような指定はできないのですが、noNestingClassというオプションがあって、「そこで指定したclassを持つli要素は子カテゴリを持てない」という指定はできるので、ちょっとめんどいですが、ソートをするたびに要素の深さを見て、それがmaxLevelを超えていれば、addClassしていくというメソッドを挟んでやれば同じことが実現できます。
てわけで、私は後者がいいなーと思ったですが、こちらのほうはInterfaceという今後updateされなさそうなライブラリを使っているんで、今後の保守を考えるとあまり使いたくない。。。。開発ページのコメントの中で作者の方は「jQueryのUI移植版もつくりたいのだ!」と述べておられますが、それは1年前の発言でその後音沙汰なし。それでもファンのみなさんは「どーしたまだか?」「おれらでつくるしかないワケ?」てなことをいって口をあんぐり空けて待っているという、誠に悩ましい状況です。
自分でつくればいいじゃん!という選択もありますが、こういうドラッグする系のメソッドって、恐ろしくややこしくて私にはとても手が出ません。だれかがつくってくれるのを待つしかない。。。。