可敲除排序禁用项目作为放置目标

knockout-sortable disable item as drop target

我的问题与这个非常相似:disabling individual items in knockout-sortable

但接受的答案将项目保留为放置目标。 (该项目本身不可拖动,但您可以将项目放在它上面)。我想知道是否有完全禁用该项目的好方法。 jQuery 建议永远不要像这样首先启用它:( http://jqueryui.com/sortable/#items )

    $( "#sortable1" ).sortable({
        items: "li:not(.ui-state-disabled)"
    });

但我不确定如何将该逻辑与 "sortable" 绑定一起使用。

因为这只真正适用于列表开头或结尾的项目,所以我可以将它们与 "sortable" 绑定分开添加。但是,如果有一种稍微优雅的方式来做,我会更好。我有一种感觉,我错过了一个明显的内置于 knockout-sortable 插件中的方法。

从您提到的答案来看,这是您要实现的目标吗?

<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)";