我使用这个例子jQuery UI 可排序 http://jqueryui.com/demos/sortable/#empty-lists
我在拖放方面遇到问题。
表号 3 -sortable3
应该只能收到一件物品。
这是我的 HTML
<div class="demo">
<ul id="sortable1" class='droptrue'>
<li class="ui-state-default">Can be dropped..</li>
<li class="ui-state-default">..on an empty list</li>
<li class="ui-state-default">Item 3</li>
<li class="ui-state-default">Item 4</li>
<li class="ui-state-default">Item 5</li>
</ul>
<ul id="sortable2" class='dropfalse'>
<li class="ui-state-highlight">Cannot be dropped..</li>
<li class="ui-state-highlight">..on an empty list</li>
<li class="ui-state-highlight">Item 3</li>
<li class="ui-state-highlight">Item 4</li>
<li class="ui-state-highlight">Item 5</li>
</ul>
<ul id="sortable3" class='droptrue'>
</ul>
My CSS
#sortable1, #sortable2, #sortable3{
list-style-type: none;
margin: 0;
padding: 0;
float: left;
margin-right: 10px;
background: #eee;
padding: 5px;
width: 143px;
}
#sortable1 li, #sortable2 li, #sortable3 li{
margin: 5px;
padding: 5px;
font-size: 1.2em;
width: 120px;
}
我的脚本
$(function() {
$("ul.droptrue").sortable({
connectWith: "ul"
});
$("ul.dropfalse").sortable({
connectWith: "ul",
dropOnEmpty: false
});
$("#sortable1, #sortable2, #sortable3").disableSelection();
});
为了防止任何额外的物品掉入sortable3
,如果超过最大数量则取消投放。
下面的代码是您当前的代码,我只添加了最后一个方法,该方法将接收到的事件附加到第三个可排序对象。
$(function() {
$("ul.droptrue").sortable({
connectWith: "ul",
});
$("ul.dropfalse").sortable({
connectWith: "ul",
dropOnEmpty: false
});
$("#sortable1, #sortable2, #sortable3").disableSelection();
$("#sortable3").on("sortreceive", function(event, ui) {
var $list = $(this);
if ($list.children().length > 1) {
$(ui.sender).sortable('cancel');
}
});
});
DEMO http://jsfiddle.net/FranWahl/EGcY8/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)