アイテムを選択して並べ替えることができるように、jQueryUIの「並べ替え可能な」プラグインを使用しています。
プラグインを設定して、2つのリストを作成しました。1つは「利用可能な」アイテム用で、もう1つは「選択済み」アイテム用です。
プラグインは期待どおりに機能します。あるリストから別のリストにアイテムを移動できます。
ただし、リストから1つのアイテムを削除すると、リストの高さが低くなります。それを修正する方法はありますか?
実際、両方のリストの外側の境界線を左側のアイテムの最初の高さに設定したいと思います(最初は、すべてのアイテムが最初のリストにあります)
この写真は私がやりたいことを説明しています:
赤い線が欲しいです。両方のリストにこのサイズを固定してもらいたい。
これが私のコードです(実際にはasp.net Webページから生成されます):
<script type="text/javascript">
$(function () {
$("#sourceItems").sortable({
connectWith: "#targetItems",
update: function (event, ui) {
$("#selectedUserIDs").val(
$("#targetItems").sortable('toArray')
);
},
placeholder: "ui-state-highlight"
});
$("#targetItems").sortable({
connectWith: "#sourceItems",
placeholder: "ui-state-highlight"
});
$("#sourceItems, #targetItems").disableSelection();
});
</script>
<style type="text/css">
#sourceItems, #targetItems { list-style-type: none; margin: 0; padding: 0; margin-right: 10px; background: #eee; padding: 5px; width: 230px; border:solid 1px black; }
#sourceItems li, #targetItems li { margin: 5px; padding: 5px; width: 200px; height: 12px; }
</style>
<div style="float: left; display: inline-block; width:fill-available">
<p>Available :</p>
<ul id="sourceItems" class="droptrue">
<li class="ui-state-default" id='i1'>item1</li>
<li class="ui-state-default" id='i32'>item2</li>
<li class="ui-state-default" id='i47'>item3</li>
<li class="ui-state-default" id='i46'>item4</li>
</ul>
</div>
<div style="float: left; display: inline-block;">
<p>Selected :</p>
<ul id="targetItems" class="droptrue">
</ul>
</div>
<div style="display: none">
<input name="selectedUserIDs" type="text" id="selectedUserIDs" />
</div>
非表示の入力フィールドは、選択したアイテムを保存するためのコンテナーです(フォームとともに投稿されます)。
両方のリストに追加.height($("#sourceItems).outerHeight());
してみましたが、機能しません。