过滤jQuery可排序的项目
Filter jQuery sortable items
我有两个div容器是可排序的,并与connectWith
连接。两者都有可排序的项目,我可以按需拖放。这些项目有一些类别,如group1
和group2
。我们称容器为container1
和container2
。我需要使group1
项目被拖放到任何容器中,group2
项目被拖放到container2
内部。我已经阅读了jQuery文档,但没有找到答案或一个想法如何做到这一点。
尝试订阅接收事件。我还没有对此进行测试,但我的猜测是,如果您返回false (jQuery中阻止事件的标准模式),则丢弃的项目将不会添加到列表中。这里有一些伪代码来帮助你开始…
$("...").sortable(
{
receive: function ()
{
// assuming that "this" maps to the current object being dragged
if (this.className.indexOf("...")) return false;
}
});
EDIT我想出了一个更好地满足您需求的解决方案。这段代码可以稍微调整一下,例如,使group2
的项目根本无法排序,即使它们已经在container1
中。
JS:
$(function() {
$(".container1,.container2").sortable();
// on mousedown set the "connectWith" option of sortable depending on
// whenever item that user may start dragging has class "group1" or not
$(".container1 > li, .container2 > li").mousedown(function() {
var $this = $(this);
$this.parent().sortable("option", "connectWith", $this.hasClass('group1') ? '.connectedSortable' : false);
})
});
HTML: <ul class="container1 connectedSortable">
<li class="group1">item 1.1</li>
<li class="group2">item 1.2</li>
<li class="group1">item 1.3</li>
<li class="group2">item 1.4</li>
</ul>
<ul class="container2 connectedSortable">
<li class="group1">item 2.1</li>
<li class="group2">item 2.2</li>
<li class="group2">item 2.3</li>
<li class="group1">item 2.4</li>
<li class="group2">item 2.5</li>
</ul>
相关文章:
- 如何在智能表中按日期对项目进行排序
- 按不同项目对对象数组进行排序
- 在Javascript中,当使用array.prush方法向列表中添加项目时,如何对其进行排序
- 我在页面中使用的jQuery UI可排序项目;不起作用
- 如何在角度js的自动完成下拉列表中对项目列表(按字母顺序)进行排序
- Jquery UI可排序,自动移动项目
- 对选定的排序项目应用不同的颜色
- 获取项目的顺序 jQuery 可排序并设置它们的顺序
- 在可排序的JQuery UI列表中至少保留一个项目
- 可拖动和可排序项目编号在更改时更新
- 限制可放置jqueryui可排序项目的区域
- 如何对select2自动完成结果进行排序,只显示以第一个字母开头的项目
- 动态生成<选择>未显示已排序列表中的第一个项目
- List.js对很长的项目排序不正确
- 更新“项目”选项以进行排序
- 使用 jqueryui 的多个可排序列表 - 不希望项目在列表组之间混合
- 如何在可排序中查找值的项目 用javascript.
- 如何删除项目的可排序 JQuery
- 按字母顺序对项目进行排序
- Jquery UI 可排序和可删除 - 无法将项目从一个列表克隆到另一个列表