Knockout.js 淘汰可排序禁用项作为删除目标

Knockout.js 淘汰可排序禁用项作为删除目标,knockout.js,jquery-ui-sortable,knockout-sortable,Knockout.js,Jquery Ui Sortable,Knockout Sortable,我的问题与此非常相似: 但被接受的答案将该项保留为删除目标。(项目本身不可拖动,但您可以将项目放在上面)。我想知道是否有一个好方法可以完全禁用该项目。jQuery建议不要像这样一开始就启用它:() 但我不确定如何将这种逻辑用于“可排序”绑定 由于这只适用于列表开头或结尾的项目,因此我可以将它们与“可排序”绑定分开添加。但如果有一个稍微优雅的方式来做它,否则,我会更好。我有种感觉,我缺少了一种内置于击倒排序插件中的明显方式。从你提到的答案中可以看出,这就是你想要实现的吗 <div class

我的问题与此非常相似:

但被接受的答案将该项保留为删除目标。(项目本身不可拖动,但您可以将项目放在上面)。我想知道是否有一个好方法可以完全禁用该项目。jQuery建议不要像这样一开始就启用它:()

但我不确定如何将这种逻辑用于“可排序”绑定


由于这只适用于列表开头或结尾的项目,因此我可以将它们与“可排序”绑定分开添加。但如果有一个稍微优雅的方式来做它,否则,我会更好。我有种感觉,我缺少了一种内置于击倒排序插件中的明显方式。

从你提到的答案中可以看出,这就是你想要实现的吗

<div class="container" data-bind="sortable: { data: tasks, options: { items: 'li:not(.ui-state-disabled)' } }">

对我不得不稍微修改一下,因为我之前没有发布我的实际代码。我将其简化为这样,其中IsDragable是我的KO项的一个属性:
<div class="container" data-bind="sortable: { data: tasks, options: { items: 'li:not(.ui-state-disabled)' } }">
ko.bindingHandlers.sortable.options.cancel = "li:not(.ui-state-disabled)";