https://gist.github.com/mattandersen/9777423
こちらのコードをもとに下記のコードのようにして現在利用しています。
lang
1$('.sortable').selectable({ 2 cancel: ',.sort-handle, .ui-selected, .zerocase', 3 filter: '> li' 4}).sortable({ 5 items: "> li", 6 handle: '.sort-handle, .ui-selected', 7 8 helper: function(e, item) { 9 if ( ! item.hasClass('ui-selected') ) { 10 item.parent().children('.ui-selected').removeClass('ui-selected'); 11 item.addClass('ui-selected'); 12 } 13 var selected = item.parent().children('.ui-selected').clone(); 14 item.data('multidrag', selected).siblings('.ui-selected').remove(); 15 return $('<li/>').append(selected); 16 }, 17 18 stop: function(e, ui) { 19 var selected = ui.item.data('multidrag'); 20 ui.item.after(selected); 21 ui.item.remove(); 22 } 23});
lang
1<ul class="sortable"> 2 <li><i class="sort-handle"></i>list</li> 3 <li><i class="sort-handle"></i>list</li> 4 <li><i class="sort-handle"></i>list</li> 5</ul> 6
このコードの場合、Selectableによって選択状態の要素のみをSortableで並び替えできる仕組みになっています。
「sort-handle」の部分だけはSelectableの対象外にして直接ドラッグ可能ですが、ハンドルに頼らず選択していない場合も直接ドラッグでSortableが効くようにしたいと考えています。
要件は下記です。
- Selectableの投げ縄ツール的ドラッグ選択を無効化
- クリックで単一選択は生かす
- Ctrl+クリックで複数選択は生かす
もしご存知の方がいましたら教えていただければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。