jQuery 可对多级项目进行排序

标签 jquery jquery-ui jquery-ui-sortable nested-sortable

我想要一个具有多个级别的可排序列表。我尝试了 this blog因为它很容易描述事物

但是当我尝试使用多个级别时,它不起作用:(

这是我需要的结构

<div class='sortable'>
    <div class='item1'>aa</div>
    <div class='item1'>
        <div class='item2'>bb</div>
        <div class='item2'>cc</div>
        <div class='item2'>dd</div>
    </div>
    <div class='item1'>ee</div>
</div>

和脚本

$(".sortable").sortable();
$(".item1").sortable();

当我将 sortable() 分配给 sortable 类item1 类 的子级时,所有 item1item2 类将分配 draggable="true" 属性,我无法将子项拖动到 item1 下。item2元素只需要拖动到父 item1

内部即可

有什么好的解决方案可以使两个级别同时排序

谢谢

最佳答案

这是您需要的行为吗?

http://jsfiddle.net/JKqrX/1/

这个想法是使“item1”成为一个单独的可排序元素,它具有子元素并具有所有“item1”的句柄,以便您可以轻松地对两个级别进行排序。您可以将任何图像或拖动图标放在处理程序的位置进行拖动

//HTML
<div class='sortable'>
    <div class='item1'><span class="handle">handle   </span>aa</div>
    <div class='item1 has-child'>
        <span class="handle">handle   </span>
        <div class='item2'>bb</div>
        <div class='item2'>cc</div>
        <div class='item2'>dd</div>
    </div>
    <div class='item1'><span class="handle">handle   </span>ee</div>
</div>

//JS
$(".has-child").sortable({
    items: ".item2"
});
$(".sortable").sortable({
    handle: ".handle"
});

关于jQuery 可对多级项目进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17476533/

相关文章:

javascript - jQuery.each() - 将额外的参数传递给回调参数

javascript - 将 'active' 类添加到 li 中,该类的名称与您所在页面的名称相似

javascript - JQuery Mobile 1.4 - 小部件在页面上显示正常,但在弹出窗口上没有皮肤

javascript - 当滚动条距离窗口底部 200px 时加载 AJAX 页面,窗口大小可能会有所不同

jquery 可排序警报此列表 id

jquery - 如何使用jquery复制href ="...#something"

jquery-ui - jQuery Draggable 和溢出问题

javascript - 限制在一个div内拖动,在受限的div内限制一定高度?

javascript - JQuery UI 可排序 - 可以取消特定元素吗?

jQuery ui 可排序表格行刷新里面的数字位置