我有两个列表 - 第一个包含用户可以选择的项目列表,他通过将它们拖动到第二个列表来选择它们。我已经使用 jQuery UI Sortable 实现了这一点,并在jsfiddle上创建了一个基本示例。
所以将一个项目从第一个列表拖到第二个列表 - 好的。如果您向下滚动到第二个列表的底部,则会出现问题 - 您无法将项目从第一个列表拖动到第二个列表。似乎所有超出可见列表末尾的列表项都没有与之关联的放置目标。在另一个方向复制时也会发生同样的情况。
由于 sortable 似乎针对列表,我怀疑我错过了一个技巧。有任何想法吗?
jsfiddle 示例代码是:
html
<div class="listDiv">
<ul id="list1" class="connected ui-sortable">
<li id="a">a</li>
<li id="b">b</li>
<li id="c">c</li>
<li id="d">d</li>
<li id="e">e</li>
<li id="f">f</li>
<li id="g">g</li>
<li id="h">h</li>
<li id="i">i</li>
<li id="j">j</li>
</ul>
</div>
<div class="listDiv">
<ul id="list1" class="connected ui-sortable">
<li id="1">1</li>
<li id="2">2</li>
<li id="3">3</li>
<li id="4">4</li>
<li id="5">5</li>
<li id="6">6</li>
<li id="7">7</li>
<li id="8">8</li>
<li id="9">9</li>
<li id="10">10</li>
<li id="11">11</li>
<li id="12">12</li>
<li id="13">13</li>
<li id="14">14</li>
<li id="15">15</li>
</ul>
</div>
js
$(function() {
$( "#list1, #list2" ).sortable({
connectWith: ".connected"
}).disableSelection();
});
css
.listDiv {
overflow:auto;
float: left;
width:400px;
border: 1px solid #999;
}
#list1, #list2 {
list-style-type: none;
height: 200px;
}
#list1 li, #list2 li {
font-size: 11px;
margin: 0 5px 5px;
padding: 5px;
width: 300px;
border: 1px solid #C5DBEC;
font-family: Verdana,Arial,Helvetica,sans-serif;
font-weight: bold;
outline: medium none;
}