我有两个直接UL元素的排序,每个元素至少有一个LI元素,多达十个,排序如下:
$(".sortable").sortable({
connectWith: ".sortable",
cancel: '.no-drag',
}).disableSelection();
我希望每个UL都有一个最高的LI元素读取'Title'。我不希望这个LI元素是可拖动的,我不希望它是可排序的;它实际上是UL的标题块。 sortable()调用中的'cancel'选项禁止用户拖动它,但用户仍然可以上下拖动列表中的其他LI元素,从而移除最顶层的LI。我想阻止这一点。
基本上:我希望LI项目2-N可以排序,1个固定。
思想?
答案 0 :(得分:2)
我没有看到您已经提出的解决方案存在问题,但我想我会提到使用“:not”和“:first”选择器的组合,您可以更直接地获得您正在寻找的理想结果:
$(".sortable").sortable({
connectWith: ".sortable",
cancel: '.no-drag',
items: 'li:not(:first)'
});
或者,您可以使用“gt”选择器指定索引大于0的所有列表项:
$(".sortable").sortable({
connectWith: ".sortable",
cancel: '.no-drag',
items: 'li:gt(0)'
});
我确信还有很多其他方法可以解决这个问题。
答案 1 :(得分:1)
嗯,有点坚持不懈会有所帮助。刚刚将可排序的调用更改为:
$(".sortable").sortable({
connectWith: ".sortable",
cancel: '.no-drag',
items: '.sortable-item'
});
然后给每个LI我想要排序一个'sortable-item'类。瞧。