我正在尝试让 cancelDrop 选项与 Knockout 可排序绑定一起使用。现在,只是为了调试,我正在尝试取消所有动作。
这是我的标记
<ol class="toc-child"
data-bind="sortable: {template: 'listTemplate', data:children, isEnabled: $root.allowEditing, beforeMove: beforeMove }"></ol>
这是我的 beforeMove 功能
this.beforeMove = function(arg, b, c){
//debugger;
arg.cancelDrop = true;
};
当我取消注释调试器语句时,我可以看到函数命中,我可以看到 cancelDrop 属性被设置,我什至看到
if (arg.cancelDrop) {
$(ui.sender).sortable('cancel');
return;
}
按理执行。但动作仍然存在。
特别奇怪的是 beforeMove 函数似乎在被移动的项目被放置在新位置之后被调用。我应该期望在此之前看到这个被调用吗?