我正在使用 jQuery UI “可排序”插件来选择和排序项目。
我将插件设置为有两个列表,一个用于“可用”项目,第二个用于“选定”项目。
该插件按预期工作,我可以将项目从一个列表移动到另一个列表。
但是,当我从列表中删除一项时,列表的高度会降低。有什么办法可以解决吗?
实际上,我想将两个列表的外边框设置为左侧项目的初始高度(一开始,所有项目都在第一个列表中)
这张图片描述了我想做的事情:
红线是我想要的。我希望两个列表都具有这个大小,并且是固定的。
这是我的代码(实际上是从 asp.net 网页生成的):
<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());
到两个列表中,但这不起作用。