jQuery UIのsortableでhandleオプションを指定してクリックできる要素を限定する
jQuery UIのsortableをデフォルトで使用すると、要素のどこでもクリックして並び替えを開始できます。(正確にはできない要素もあります、後述します)
特定の要素だけに限定させるオプションがhandleです。
http://api.jqueryui.com/sortable/#option-handle
デモ画面
このデモ画面では、上下矢印アイコン(太線)でだけ並び替えができます。
これは矢印アイコンに"sortable-handle"クラスを追加して、sortable({handle: "sortable-handle"})と呼んでいるからです。
html
<ul id="sortable-with-handle1" class="sortable-li"> <li class="ui-state-default"> <a class="ui-state-default ui-corner-all ui-button sortable-handle"> <span class="ui-icon ui-icon-arrowthick-2-n-s"></span> </a> 項目 1 <button class="ui-state-default ui-corner-all ui-button sortable-handle"> <span class="ui-icon ui-icon-arrow-2-n-s"></span> </button> </li> ~~略~~ </ul>
CSS
.sortable-li { padding: 0; list-style-type: none; width: 50%; }
javascript
$(function(){ $('#sortable-with-handle1').sortable({handle: ".sortable-handle"}); });
デモ画面では細線の上下矢印アイコンにも"sortable-handle"クラスを指定していますがこれでは並び替えはできません。
太線アイコンと細線アイコンの違いは前者がaタグで後者はbuttonタグという違いです。
ここで最初の話に戻りますが、デフォルトだとbuttonタグでは並び替えをすることができません。これを指定しているのがcancelオプションでデフォルトでは"input,textarea,button,select,option"が設定されています。
以上
コアjQuery+プラグイン/jQuery UI 開発実践技法 (Programmer’s SELECTION)
- 作者: Bear Bibeault,Yehuda Katz,吉川邦夫
- 出版社/メーカー: 翔泳社
- 発売日: 2011/08/31
- メディア: 大型本
- 購入: 8人 クリック: 296回
- この商品を含むブログ (19件) を見る