相关疑难解决方法(0)

强制项目保留在jQuery UI可排序列表中

我已经设置了一个jQuery可排序列表,但是我需要能够将可排序的"固定"中的一些项目保留在原位,并且其他项目可以对它们进行排序.我认为会有内置的方法来实现这一点,唉,事实并非如此.

我可以设置列表而不包括有问题的项目:

<ul id="fruit">
    <li class="fixed">apples</li>
    <li>oranges</li>
    <li>bananas</li>
    <li>pineapples</li>
    <li>grapes</li>
    <li class="fixed">pears</li>
    <li>mango</li>
</ul>

<script type="text/javascript">
    $('#fruit').sortable({items: "li:not('.fixed')"})
</script>
Run Code Online (Sandbox Code Playgroud)

这使我无法拖放这些项目,但如果对它们周围的项目进行排序,它们仍会移动.可能有一种方法可以使用此方法具有的许多回调来执行此操作但我无法解决此问题.

也许这种方法可以成为UI Sortable选项的一个很好的补充?

jquery jquery-ui jquery-ui-sortable

14
推荐指数
1
解决办法
1万
查看次数

JQuery可排序列表,其中一些元素按顺序冻结?

我正在寻找一种方法来获得类似JQuery的可排序列表(链接),但是其中一些元素位于固定的不可分割位置.

使一些元素不可分割是微不足道的,但是它们的位置不会保持固定,因为它们上方和下方的可拖动元素的数量可以改变.

更具体一点:我按排名顺序列出了10个项目.我希望用户能够通过拖动(可排序列表)来更改某些项目的排名,但不能更改其他冻结元素的排名.标准的JQuery可排序不可分割功能允许通过更改冻结项目上方或下方的元素数量来更改冻结项目的等级.

我已经尝试通过拖动时"交换"列表元素手动执行此操作.即,当列表元素被拖动到非冻结元素上时,交换两个元素的位置.这给出了我想要的语义,但被拖动的项目在其新位置和当前"拖动"位置之间明显地"跳跃".(我希望它保持在当前的拖动位置;只有它在DOM中的位置才会改变.但是当DOM位置改变时,必须重新计算拖动偏移坐标.而且我不知道如何同时执行DOM位置更改并且原子地拖动偏移坐标变化,防止两者之间的重绘.目前,有时在两者之间重绘,并且元素可见(尽管很快)跳跃.)

编辑 这里是一个jsfiddle显示我的手动方法: 链接.玩了一会儿,你会注意到我提到的闪烁/跳跃.

javascript jquery jquery-ui

6
推荐指数
1
解决办法
5147
查看次数