Javascript 用于多个嵌套级别的jQuery UI可排序取消选项

Javascript 用于多个嵌套级别的jQuery UI可排序取消选项,javascript,jquery,jquery-ui,jquery-ui-sortable,Javascript,Jquery,Jquery Ui,Jquery Ui Sortable,我想连接多个嵌套的排序表,并定义只有具有特定css类的元素才是真正可排序的,而所有其他元素仍然是可排序的目标,而不会被它们自己排序。 据我所知,我可以通过cancel选项来实现这一点,但我没有找到一种方法来指定一个在所有嵌套级别上都有效的选择器,因为我不知道此时的级别数量。 在这种情况下,它在第二个层次上起作用,但在其他层次上不起作用。例如,在第一级中,禁用的元素仍然是可排序的,而在第三级中,没有任何内容是可排序的 任何有助于做到这一点的提示都是非常值得赞赏的(并且是经过投票的) 谢谢 桑德罗我

我想连接多个嵌套的排序表,并定义只有具有特定css类的元素才是真正可排序的,而所有其他元素仍然是可排序的目标,而不会被它们自己排序。 据我所知,我可以通过
cancel
选项来实现这一点,但我没有找到一种方法来指定一个在所有嵌套级别上都有效的选择器,因为我不知道此时的级别数量。 在这种情况下,它在第二个层次上起作用,但在其他层次上不起作用。例如,在第一级中,禁用的元素仍然是可排序的,而在第三级中,没有任何内容是可排序的

任何有助于做到这一点的提示都是非常值得赞赏的(并且是经过投票的)

谢谢


桑德罗

我想你可能把事情复杂化了。我不认为你真的需要知道有多少级别。尝试向“禁用”元素添加一个类。然后,您可以将所有内容按如下方式分类:

$(function() {
    $( ".sortable" ).sortable({
                    connectWith: ".sortable",
                    cancel: ".notsortable"
    });
});
我更新了您的,并在此处包含完整代码:

$(函数(){
$(“.sortable”).sortable({
连接到:“.sortable”,
取消:“.notsortable”
});
});
.sortable{
左侧填充:20px;
边框:1px纯色灰色;
}

项目1(残疾人)
项目2
项目3
项目4(残疾人)
项目5(残疾人)
项目6
项目6.1(残疾人)
项目6.2(残疾人)
项目6.3
项目6.4
项目6.5
项目6.5.1
项目6.5.2
项目6.5.3
第6.5.4项(禁用)
第6.5.5项(禁用)
第6.5.5.1项(禁用)
第6.5.5.2项(禁用)
项目7
$(函数(){
$(“.sortable”).sortable({
连接到:“.sortable”,
取消:“.notsortable,.prueba”,
光标:移动,
});
});
.sortable{
左侧填充:20px;
边框:1px纯色灰色;
}

项目1(残疾人)
项目2
项目3
项目4(残疾人)
项目5(残疾人)
项目6
项目6.1(残疾人)
项目6.2(残疾人)
项目6.3
项目6.4
项目6.5
项目6.5.1
项目6.5.2
项目6.5.3
第6.5.4项(禁用)
第6.5.5项(禁用)
第6.5.5.1项(禁用)
第6.5.5.2项(禁用)
项目7

很高兴知道它是这样工作的。但就我而言,我只对可排序的项目有影响,而对其他项目没有影响。这就是我为什么那样做的原因。你当然不知道,啊。好啊这是有道理的,我现在明白你的问题了。不过,我认为你真的很接近。我会更新我的答案。是的,我印象深刻,非常感谢你的回答!我也不能使用标签的名称(
div
),但是如果我删除了选择器,它仍然可以工作!伟大的Upps。我想我没有点击“跑步”。我没有只删除
div
。我不得不使用
body
标记作为这样的参考:
body:not(.enabled,.sortable)
请参见:老实说,我不明白为什么
not:(.enabled,.sortable)
会导致期望的结果。你能告诉我吗?